Handles 子句 (Visual Basic)
声明某一过程可处理指定的事件。
语法
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