Handles

Aktualisiert: November 2007

Deklariert, dass eine Prozedur ein bestimmtes Ereignis behandelt.

proceduredeclaration Handles eventlist

Bestandteile

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

  • eventlist
    Liste der durch proceduredeclaration zu behandelnden Ereignisse. 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 <languageKeyword>Event</languageKeyword>-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

Siehe auch

Konzepte

Ereignisse und Ereignishandler

Referenz

WithEvents

AddHandler-Anweisung

RemoveHandler-Anweisung

<languageKeyword>Event</languageKeyword>-Anweisung

RaiseEvent-Anweisung