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.
Ordnet ein Ereignis einem Ereignishandler zur Laufzeit zu.
Syntax
AddHandler event, {AddressOf eventhandler | expression }
Bestandteile
| Teil | BESCHREIBUNG |
|---|---|
event |
Der Name des zu behandelnden Ereignisses. |
eventhandler |
Der Name einer Prozedur, die das Ereignis behandelt. |
expression |
Ein Lambda-Ausdruck, der das Ereignis behandelt. |
Die Teile AddressOf eventhandler schließen expression sich gegenseitig aus.
Bemerkungen
Mit den AddHandler Anweisungen RemoveHandler können Sie die Ereignisbehandlung während der Programmausführung jederzeit starten und beenden.
Die Signatur des neuen Ereignishandlers (die eventhandler Prozedur oder expression lambda) muss mit der Signatur des Ereignisses eventübereinstimmen.
Mit dem Handles Schlüsselwort und der AddHandler Anweisung können Sie angeben, dass bestimmte Prozeduren bestimmte Ereignisse behandeln, es gibt jedoch Unterschiede. Die AddHandler Anweisung verbindet Prozeduren zur Laufzeit mit Ereignissen. Verwenden Sie das Handles Schlüsselwort beim Definieren einer Prozedur, um anzugeben, dass es ein bestimmtes Ereignis behandelt. Weitere Informationen finden Sie unter Handles.
Ein Handler, der mit einer expliziten Lambda-Funktion hinzugefügt wurde, kann später (mithilfe von RemoveHandler) nicht entfernt werden. Wenn die Lambda-Funktion keinen Namen erhält, ist es nicht möglich, später darauf zu verweisen. Das Zuweisen der Lambda-Funktion zu einer Variablen und das Hinzufügen des Handlers über diese Variable ermöglicht jedoch das Entfernen des Handlers mithilfe dieser Variablen.
Hinweis
Bei benutzerdefinierten Ereignissen ruft die AddHandler Anweisung den Accessor des Ereignisses AddHandler auf. Weitere Informationen zu benutzerdefinierten Ereignissen finden Sie unter Event Statement.
Beispiel
Im folgenden Beispiel wird die Verwendung AddHandler mit ConvertEventHandler Stellvertretungen für Datenbindungsszenarien veranschaulicht. Dieses Beispiel zeigt einen praktischen Anwendungsfall, bei dem Ereignishandler an und Parse Ereignisse eines Binding Objekts angefügt Format sind, um zwischen Dezimalwerten und Währungszeichenfolgen zu konvertieren.
Public Class DataBindingExample
Private textBox1 As TextBox
Private ds As DataSet
Public Sub New()
textBox1 = New TextBox()
ds = New DataSet()
SetupSampleData()
BindControlWithAddHandler()
End Sub
Private Sub SetupSampleData()
Dim table As New DataTable("Orders")
table.Columns.Add("OrderAmount", GetType(Decimal))
table.Rows.Add(123.45D)
table.Rows.Add(67.89D)
ds.Tables.Add(table)
End Sub
Private Sub BindControlWithAddHandler()
Dim binding As New Binding("Text", ds, "Orders.OrderAmount")
' Use AddHandler to associate ConvertEventHandler delegates
AddHandler binding.Format, AddressOf DecimalToCurrency
AddHandler binding.Parse, AddressOf CurrencyToDecimal
textBox1.DataBindings.Add(binding)
End Sub
Private Sub DecimalToCurrency(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(String) Then
Return
End If
e.Value = CDec(e.Value).ToString("c")
End Sub
Private Sub CurrencyToDecimal(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(Decimal) Then
Return
End If
e.Value = Convert.ToDecimal(e.Value.ToString())
End Sub
End Class
' Simple example for basic AddHandler usage
Sub TestBasicEvents()
Dim Obj As New Class1
AddHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
' Lambda expression example
AddHandler Obj.Ev_Event, Sub ()
MsgBox("Lambda caught event.")
End Sub
Obj.CauseSomeEvent()
End Sub
Sub EventHandler()
MsgBox("EventHandler caught event.")
End Sub
Public Class Class1
Public Event Ev_Event()
Sub CauseSomeEvent()
RaiseEvent Ev_Event()
End Sub
End Class
Dieses Beispiel zeigt:
- Erstellen eines
BindingObjekts für die Datenbindung. - Wird
AddHandlerverwendet, um Stellvertretungen an dieFormatEreignisse undParseEreignisse anzufügenConvertEventHandler. - Implementieren von Ereignishandlermethoden, die zwischen Dezimal- und Währungszeichenfolgenformaten konvertiert werden.
- Grundlegende
AddHandlerVerwendung mit benutzerdefinierten Ereignissen und Lambda-Ausdrücken.