Handles-Klausel (Visual Basic)

Deklariert, dass eine Prozedur ein bestimmtes Ereignis behandelt.

proceduredeclaration Handles eventlist

Teile

  • proceduredeclaration
    Die Deklaration der Sub-Prozedur für die Prozedur, die das Ereignis behandelt.

  • eventlist
    Liste der durch proceduredeclaration zu behandelnden Ereignisse, durch Trennzeichen getrennt. Das Ereignis muss entweder durch die Basisklasse für die aktuelle Klasse oder durch ein Objekt ausgelöst werden, das mit dem WithEvents-Schlüsselwort deklariert wurde.

Hinweise

Verwenden Sie das Handles-Schlüsselwort am Ende einer Prozedurdeklaration, damit die Prozedur Ereignisse behandelt, die durch eine mit dem WithEvents-Schlüsselwort deklarierte Objektvariable ausgelöst werden. Das Handles-Schlüsselwort kann auch in abgeleiteten Klassen verwendet werden, um Ereignisse aus einer Basisklasse zu behandeln.

Die Signatur der Prozedur muss mit der Signatur jedes Ereignisses in eventlist übereinstimmen.

Sie können sowohl mit dem Handles-Schlüsselwort als auch mit der AddHandler-Anweisung angeben, dass bestimmte Prozeduren bestimmte Ereignisse behandeln, doch weisen die beiden Verfahren Unterschiede auf. Verwenden Sie das Handles-Schlüsselwort beim Definieren einer Prozedur, um anzugeben, dass sie ein bestimmtes Ereignis behandelt. Die AddHandler-Anweisung verbindet zur Laufzeit Prozeduren mit Ereignissen. Weitere Informationen finden Sie unter AddHandler-Anweisung.

Für benutzerdefinierte Ereignisse ruft die Anwendung den AddHandler-Accessor des Ereignisses auf, wenn sie die Prozedur als Ereignishandler hinzufügt. Weitere Informationen über benutzerdefinierte Ereignisse finden Sie unter Event-Anweisung.

Beispiel

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 demonstriert, wie eine abgeleitete Klasse ein Ereignis aus einer Basisklasse mit der Handles-Anweisung behandeln 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

Das folgende Beispiel enthält zwei Schaltflächen-Ereignishandler 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

Das folgende Beispiel entspricht dem vorhergehenden. eventlist in der Handles-Klausel enthält 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

Siehe auch

Referenz

WithEvents (Visual Basic)

AddHandler-Anweisung

RemoveHandler-Anweisung

Event-Anweisung

RaiseEvent-Anweisung

Weitere Ressourcen

Ereignisse (Visual Basic)