Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Deklariert, dass eine Prozedur ein angegebenes Ereignis behandelt.
Syntax
proceduredeclaration Handles eventlist
Bestandteile
proceduredeclaration Die Sub Prozedurdeklaration für die Prozedur, die das Ereignis behandelt.
eventlist Liste der Zu behandelnden Ereignisse proceduredeclaration , getrennt durch Kommas. Die Ereignisse müssen entweder von der Basisklasse für die aktuelle Klasse oder von einem Objekt ausgelöst werden, das mit dem WithEvents Schlüsselwort deklariert wird.
Bemerkungen
Verwenden Sie das Handles Schlüsselwort am Ende einer Prozedurdeklaration, um ereignisse zu behandeln, die von einer objektvariablen deklarierten Objektvariable mit dem WithEvents Schlüsselwort ausgelöst werden. Das Handles Schlüsselwort kann auch in einer abgeleiteten Klasse verwendet werden, um Ereignisse aus einer Basisklasse zu behandeln.
Mit dem Handles Schlüsselwort und der AddHandler Anweisung können Sie angeben, dass bestimmte Prozeduren bestimmte Ereignisse behandeln, es gibt jedoch Unterschiede. Verwenden Sie das Handles Schlüsselwort beim Definieren einer Prozedur, um anzugeben, dass es ein bestimmtes Ereignis behandelt. Die AddHandler Anweisung verbindet Prozeduren zur Laufzeit mit Ereignissen. Weitere Informationen finden Sie unter AddHandler-Anweisung.
Bei benutzerdefinierten Ereignissen ruft die Anwendung den Accessor des Ereignisses AddHandler auf, wenn sie die Prozedur als Ereignishandler hinzufügt. Weitere Informationen zu benutzerdefinierten Ereignissen finden Sie unter Event Statement.
Beispiel 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
Im folgenden Beispiel wird veranschaulicht, wie eine abgeleitete Klasse die Handles Anweisung zum Behandeln eines Ereignisses aus einer Basisklasse verwenden kann.
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
Beispiel 2
Das folgende Beispiel enthält zwei Schaltflächenereignishandler für ein WPF-Anwendungsprojekt .
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
Beispiel 3
Das folgende Beispiel entspricht dem vorherigen Beispiel. Die eventlist in der Handles Klausel enthalten die Ereignisse für beide Schaltflächen.
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