如何利用所有按钮的按钮点击事件来调用函数?

时间:2015-05-04 17:43:09

标签: vb.net

让我进一步解释。假设我在表单上有20个按钮,并且在所有按钮的单击事件中我想调用一个特定的函数,而不是在每次单击事件中调用该函数,有没有办法从任何一个调用它点击事件而不必将代码放在每个点击事件中?

希望这是有道理的。

2 个答案:

答案 0 :(得分:3)

是的,只需将每个按钮的click事件添加到Handles子句的末尾。

Private Sub My_Sub(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Click
    ' do stuff
End Sub

答案 1 :(得分:3)

如果你有很多按钮或动态数量的按钮,你可以使用递归方法为每个按钮添加相同的事件处理程序。这将处理所有按钮,甚至是组框或其他容器内的按钮。

首先,创建您希望每个按钮单击调用的方法。

Private Sub bt_ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs)
  '
  ' Your code goes here
  '
End Sub

其次,创建一个方法来递归查找所有按钮控件并添加事件处理程序。

Private Sub AddEventHandler(RootControl As Control)
  For Each c As Control In RootControl
    If c.HasChildren Then
      AddEventHandler(c)
    End If
    If TypeOf c Is Button Then
      AddHandler c.Click, AddressOf bt_ButtonClick
    End If
  Next
End Sub

最后,在表单加载事件中,添加以下行:

AddEventHandler(Me)