2016-11-29 116 views
0

我已經通過谷歌和不同的網站,以獲得添加處理程序的答案,刪除處理程序。 根據Msdn上的文檔,爲了處理在不同場景中觸發的事件,我們使用AddHandle將方法與click事件關聯起來(可能我錯誤地採用了它)。 LET我有一個按鈕單擊事件,我想它的方法聯繫起來,如何處理按鈕的點擊事件使用添加處理程序,刪除處理程序

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

    End Sub 

和方法

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

我怎麼能處理他們當兩個以上都是在同一個班級,或不同的階級。 我可以做到這一點。

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

,請以正確的方式引導我。

回答

0

事件可以通過兩種方式來訂閱:

  1. 直接處理(當你的控制,在你的榜樣按鈕,被聲明爲WITHEVENTS),並且將始終觸發:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
        ' Some action 
    End Sub 
    
  2. 動態訂閱/取消訂閱事件,例如:

    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 
    

注:

  1. ,您可以訂閱該事件的多個處理程序

  2. 處理程序要匹配的Handler(Sender as object, e as EventArgs)

+0

如何註冊控制,具有方法簽名 – SajidBp