AddHandler – příkaz
Přidruží událost k obslužné rutině události za běhu.
Syntaxe
AddHandler event, {AddressOf eventhandler | expression }
Součástky
Část | Popis |
---|---|
event |
Název události, která se má zpracovat. |
eventhandler |
Název procedury, která zpracovává událost. |
expression |
Výraz lambda, který zpracovává událost. |
AddressOf eventhandler
Části a expression
vzájemně se vylučují.
Poznámky
Tyto AddHandler
příkazy RemoveHandler
umožňují kdykoli během provádění programu spouštět a zastavovat zpracování událostí.
Podpis nové obslužné rutiny události (procedura eventhandler
expression
nebo lambda) musí odpovídat podpisu události event
.
Klíčové Handles
slovo i AddHandler
příkaz umožňují určit, že konkrétní procedury zpracovávají konkrétní události, ale existují rozdíly. Příkaz AddHandler
připojuje procedury k událostem za běhu. Handles
Klíčové slovo použijte při definování procedury k určení, že zpracovává konkrétní událost. Další informace najdete v tématu Popisovače.
Obslužnou rutinu přidanou s explicitním výrazem lambda nelze později (pomocí RemoveHandler
). Pokud není lambda pojmenována, není však možné na ni později odkazovat. Přiřazení lambda k proměnné a přidání obslužné rutiny prostřednictvím této proměnné však umožňuje odebrat obslužnou rutinu pomocí této proměnné.
Poznámka:
U vlastních událostí vyvolá AddHandler
příkaz přístupové objekty AddHandler
události. Další informace o vlastních událostech najdete v tématu Příkaz události.
Příklad
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