2016-11-29 3 views
0

Ich habe durch Google gehen und verschiedene Websites, um die Antwort von add-Handler zu erhalten, entfernen Sie Handler. Wie in der Dokumentation zu Msdn beschrieben, verwenden wir AddHandle, um Methoden mit Klickereignissen zu verknüpfen, um ein Ereignis zu behandeln, das auf ein anderes Szenario geschossen hat (kann es falsch verstanden werden). LET i auf eine Schaltfläche klicken Ereignis haben, möchte ich es mit einem Verfahren zu verbinden,So behandeln Click-Ereignis der Schaltfläche mit Add-Handler entfernen Handler

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 

    End Sub 

und Verfahren ist

Sub EventHandler() 
     ' Handle the event. 
     MsgBox("EventHandler caught event.") 
    End Sub 

, wie ich mit ihnen umgehen kann, wenn beide oben in derselben Klasse sind, oder in andere Klasse. kann ich das tun.

AddHandler Button1.Click, AddressOf EventHandler() 
RemoveHandler Button1.Click, AddressOf EventHandler() 

, führen Sie mich bitte in der richtigen Art und Weise.

Antwort

0

Ereignis kann auf zwei Arten abonniert werden:

  1. direkte Handling (wenn Ihre Steuerung, eine Schaltfläche in Ihrem Beispiel als Withevents deklariert), und es wird immer ausgelöst werden:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
        ' Some action 
    End Sub 
    
  2. dynamisch abonnieren/abbestellen Veranstaltungen, zum Beispiel:

    Sub test() 
    
        ' Subscribe the handlers based on some criteria 
        If True Then 
         AddHandler Button1.Click, AddressOf EventHandler1 
        Else 
         AddHandler Button1.Click, AddressOf EventHandler2 
        End If 
    
    End Sub 
    
    
    Sub EventHandler1(sender As Object, e As EventArgs) 
    
        ' some action 
    
        ' if you wish to unsubscribe the event, do below 
        RemoveHandler Button1.Click, AddressOf EventHandler1 
    
    End Sub 
    
    Sub EventHandler2(sender As Object, e As EventArgs) 
    
        ' some other action 
    
        ' if you wish to unsbuscribe: 
        RemoveHandler Button1.Click, AddressOf EventHandler2 
    
    End Sub 
    

Hinweis:

  1. Sie auf das Ereignis mehrere Handler abonnieren können, müssen

  2. Handler die Unterschrift von Handler(Sender as object, e as EventArgs)

+0

entsprechen, wie i-Steuerung, mit der Methode registrieren – SajidBp

Verwandte Themen