AddHandler-instructie
Koppelt een gebeurtenis aan een gebeurtenis-handler tijdens runtime.
Syntaxis
AddHandler event, {AddressOf eventhandler | expression }
generator
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.
Notitie
Voor aangepaste gebeurtenissen roept de AddHandler
instructie de accessor van AddHandler
de gebeurtenis aan. Zie Gebeurtenisinstructie voor meer informatie over aangepaste gebeurtenissen.
Voorbeeld
Sub TestEvents()
Dim Obj As New Class1
' Associate an event handler with an event.
AddHandler Obj.Ev_Event, AddressOf EventHandler
' Call the method to raise the event.
Obj.CauseSomeEvent()
' Stop handling events.
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
' This event will not be handled.
Obj.CauseSomeEvent()
' Associate an event handler with an event, using a lambda.
' This handler cannot be removed.
AddHandler Obj.Ev_Event, Sub ()
MsgBox("Lambda caught event.")
End Sub
' This event will be handled by the lambda above.
Obj.CauseSomeEvent()
End Sub
Sub EventHandler()
' Handle the event.
MsgBox("EventHandler caught event.")
End Sub
Public Class Class1
' Declare an event.
Public Event Ev_Event()
Sub CauseSomeEvent()
' Raise an event.
RaiseEvent Ev_Event()
End Sub
End Class