声明过程处理指定的事件。
语法
proceduredeclaration Handles eventlist
部件
proceduredeclaration
将 Sub
处理事件的过程的过程声明。
eventlist
要 proceduredeclaration
处理的事件列表,用逗号分隔。 事件必须由当前类的基类或使用 WithEvents
关键字声明的对象引发。
注解
Handles
使用过程声明末尾的关键字,使其处理由使用WithEvents
关键字声明的对象变量引发的事件。 还可以在 Handles
派生类中使用关键字来处理基类中的事件。
关键字 Handles
和 AddHandler
语句都允许指定特定过程处理特定事件,但存在差异。
Handles
定义过程以指定它处理特定事件时,请使用关键字。 该 AddHandler
语句在运行时将过程连接到事件。 有关详细信息,请参阅 AddHandler 语句。
对于自定义事件,应用程序在将过程添加为事件处理程序时调用事件的 AddHandler
访问器。 有关自定义事件的详细信息,请参阅 事件语句。
示例 1
Public Class ContainerClass
' Module or class level declaration.
WithEvents Obj As New Class1
Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class
Sub EventHandler() Handles Obj.Ev_Event
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub
' Call the TestEvents procedure from an instance of the ContainerClass
' class to test the Ev_Event event and the event handler.
Public Sub TestEvents()
Obj.CauseSomeEvent()
End Sub
End Class
以下示例演示派生类 Handles
如何使用该语句处理基类中的事件。
Public Class BaseClass
' Declare an event.
Event Ev1()
End Class
Class DerivedClass
Inherits BaseClass
Sub TestEvents() Handles MyBase.Ev1
' Add code to handle this event.
End Sub
End Class
示例 2
以下示例包含 WPF 应用程序 项目的两个按钮事件处理程序。
Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
MessageBox.Show(sender.Name & " clicked")
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button2.Click
MessageBox.Show(sender.Name & " clicked")
End Sub
示例 3
以下示例等效于前面的示例。
Handles
子eventlist
句中包含这两个按钮的事件。
Private Sub Button_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click, Button2.Click
MessageBox.Show(sender.Name & " clicked")
End Sub