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 eventimzası 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 AddHandlerAddHandler 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

Ayrıca bkz.