AddHandler Deyimi
Bir olayı çalışma zamanında bir olay işleyicisi ile ilişkilendirir.
Sözdizimi
AddHandler event, {AddressOf eventhandler | expression }
Parça
Bölüm | Açıklama |
---|---|
event |
İşlenmek üzere olayın adı. |
eventhandler |
Olayı işleyen bir yordamın adı. |
expression |
Olayı işleyen lambda ifadesi. |
ve expression
bölümleri AddressOf eventhandler
birbirini dışlar.
Açıklamalar
AddHandler
ve RemoveHandler
deyimleri, program yürütme sırasında istediğiniz zaman olay işlemeyi başlatmanıza ve durdurmanıza olanak tanır.
Yeni olay işleyicisinin imzası ( eventhandler
yordam veya expression
lambda) olayın event
imzası ile eşleşmelidir.
Handles
anahtar sözcüğü ve AddHandler
deyimi, belirli yordamların belirli olayları işlemesini belirtmenize olanak sağlar, ancak farklılıklar vardır. deyimi AddHandler
, yordamları çalışma zamanındaki olaylara bağlar. Belirli bir olayı işlediğini Handles
belirtmek için bir yordam tanımlarken anahtar sözcüğünü kullanın. Daha fazla bilgi için bkz . Tanıtıcılar.
Açık lambda ile eklenen bir işleyici daha sonra kaldırılamaz (kullanılarak RemoveHandler
). Gerçekten de, lambdaya bir ad verilmezse, daha sonra başvurmak mümkün değildir. Ancak lambda'yı bir değişkene atamak ve işleyiciyi bu değişken aracılığıyla eklemek, bu değişkeni kullanarak işleyiciyi kaldırmaya olanak tanır.
Not
Özel olaylar için deyimi olayın AddHandler
AddHandler
erişimcisini çağırır. Özel olaylar hakkında daha fazla bilgi için bkz . Olay Deyimi.
Örnek
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