Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Koppelt een gebeurtenis aan een gebeurtenis-handler tijdens runtime.
Syntaxis
AddHandler event, {AddressOf eventhandler | expression }
Onderdelen
| Onderdeel | Beschrijving |
|---|---|
event |
De naam van de gebeurtenis die moet worden verwerkt. |
eventhandler |
De naam van een procedure waarmee de gebeurtenis wordt verwerkt. |
expression |
Een lambda-expressie die de gebeurtenis afhandelt. |
De onderdelen AddressOf eventhandler en expression sluiten elkaar wederzijds uit.
Opmerkingen
Met de AddHandler instructies RemoveHandler kunt u de verwerking van gebeurtenissen op elk gewenst moment starten en stoppen tijdens het uitvoeren van het programma.
De handtekening van de nieuwe gebeurtenishandler (de eventhandler procedure of de expression lambda) moet overeenkomen met de handtekening van de gebeurtenis event.
Met Handles het trefwoord en de AddHandler instructie kunt u beide opgeven dat bepaalde procedures bepaalde gebeurtenissen verwerken, maar er zijn verschillen. De AddHandler instructie verbindt procedures met gebeurtenissen tijdens runtime. Gebruik het trefwoord bij het Handles definiƫren van een procedure om op te geven dat een bepaalde gebeurtenis wordt verwerkt. Zie Handles voor meer informatie.
Een handler die is toegevoegd met een expliciete lambda, kan later niet worden verwijderd (met behulp van RemoveHandler). Als de lambda geen naam krijgt, is het niet mogelijk om er later naar te verwijzen. Maar als u de lambda toewijst aan een variabele en de handler via deze variabele toevoegt, kunt u de handler verwijderen met behulp van deze variabele.
Opmerking
Voor aangepaste gebeurtenissen roept de AddHandler instructie de accessor van AddHandler de gebeurtenis aan. Zie Gebeurtenisinstructie voor meer informatie over aangepaste gebeurtenissen.
Voorbeeld
In het volgende voorbeeld ziet u hoe u deze kunt gebruiken AddHandler met ConvertEventHandler gemachtigden voor scenario's voor gegevensbinding. In dit voorbeeld ziet u een praktisch gebruiksvoorbeeld waarin gebeurtenis-handlers zijn gekoppeld aan Format en Parse gebeurtenissen van een Binding object die moeten worden geconverteerd tussen decimale waarden en valutatekenreeksen.
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
In dit voorbeeld ziet u:
-
BindingEen object maken voor gegevensbinding. - Hiermee
AddHandlerkoppeltConvertEventHandleru gemachtigden aan deFormatenParsegebeurtenissen. - Gebeurtenis-handlermethoden implementeren die worden geconverteerd tussen notaties voor decimale en valutatekenreeksen.
- Basisgebruik
AddHandlermet aangepaste gebeurtenissen en lambda-expressies.