2016-11-29 117 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