Aufrufen eines Ereignishandlers in Visual Basic
Ein Ereignis ist eine Aktion oder ein Vorkommnis, z. B. ein Mausklick oder ein überschrittenes Kreditlimit, das von einer Programmkomponente erkannt wird. Sie können Code schreiben, um auf solche Ereignisse zu reagieren. Ein Ereignishandler ist der Code, den Sie schreiben, um auf ein Ereignis zu reagieren.
Ein Ereignishandler in Visual Basic ist eine Sub
-Prozedur. Sie rufen sie jedoch normalerweise nicht auf die gleiche Weise wie andere Sub
-Prozeduren auf. Stattdessen kennzeichnen Sie die Prozedur als Handler für das Ereignis. Das ist entweder mit einer Handles
-Klausel und einer WithEvents
-Variablen oder mit einer AddHandler-Anweisung möglich. Die Verwendung einer Handles
-Klausel ist die Standardmethode zum Deklarieren eines Ereignishandlers in Visual Basic. Auf diese Weise werden die Ereignishandler von den Designern geschrieben, wenn Sie in der integrierten Entwicklungsumgebung (Integrated Development Environment, IDE) programmieren. Die AddHandler
-Anweisung eignet sich zum dynamischen Auslösen von Ereignissen zur Laufzeit.
Wenn das Ereignis auftritt, ruft Visual Basic automatisch die Ereignishandlerprozedur auf. Sämtlicher Code, der Zugriff auf das Ereignis hat, kann dieses durch die RaiseEvent-Anweisung auslösen.
Sie können demselben Ereignis mehrere Ereignishandler zuordnen. In einigen Fällen können Sie einen Handler von einem Ereignis trennen. Weitere Informationen finden Sie unter Ereignisse.
Aufrufen eines Ereignishandlers mithilfe von Handles und WithEvents
Stellen Sie sicher, dass das Ereignis mit einer Event-Anweisung deklariert ist.
Deklarieren Sie eine Objektvariable auf Modul- oder Klassenebene mit dem
WithEvents
-Schlüsselwort. DieAs
-Klausel für diese Variable muss die Klasse angeben, die das Ereignis auslöst.Fügen Sie in der Deklaration der
Sub
-Prozedur, die das Ereignis verarbeitet, eineHandles
-Klausel hinzu, die dieWithEvents
-Variable und den Ereignisnamen angibt.Wenn das Ereignis auftritt, ruft Visual Basic automatisch die
Sub
-Prozedur auf. Ihr Code kann eineRaiseEvent
-Anweisung verwenden, damit das Ereignis auftritt.Im folgenden Beispiel werden ein Ereignis und eine
WithEvents
-Variable definiert, die auf die Klasse verweist, die das Ereignis auslöst. DieSub
-Prozedur, die das Ereignis verarbeitet, verwendet eineHandles
-Klausel, um die Klasse und das Ereignis anzugeben, das sie verarbeitet.Public Class RaisesEvent Public Event SomethingHappened() Dim WithEvents happenObj As New RaisesEvent Public Sub ProcessHappen() Handles happenObj.SomethingHappened ' Insert code to handle somethingHappened event. End Sub End Class
Aufrufen eines Ereignishandlers mithilfe von AddHandler
Stellen Sie sicher, dass das Ereignis mit einer
Event
-Anweisung deklariert ist.Führen Sie eine AddHandler-Anweisung aus, um die
Sub
-Prozedur, die das Ereignis verarbeitet, dynamisch mit dem Ereignis zu verknüpfen.Wenn das Ereignis auftritt, ruft Visual Basic automatisch die
Sub
-Prozedur auf. Ihr Code kann eineRaiseEvent
-Anweisung verwenden, damit das Ereignis auftritt.Im folgenden Beispiel wird die AddHandler-Anweisung im Konstruktor verwendet, um die
OnFormClosing
-Prozedur als Ereignishandler für FormClosing zuzuordnen.Sub New() InitializeComponent() AddHandler Me.FormClosing, AddressOf OnFormClosing End Sub Private Sub OnFormClosing(sender As Object, e As FormClosingEventArgs) ' Insert code to deal with impending closure of this form. End Sub
Sie können die Zuordnung eines Ereignishandlers zu einem Ereignis aufheben, indem Sie die RemoveHandler-Anweisung ausführen.