您可以修改Handles
VS 生成的事件代码上的子句,以便它可以为多个控件处理相同的事件。在大多数情况下,有人可能希望将大部分(但不是全部)按钮点击集中到一个过程。要更改 Handles 子句:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button1.Click,
Button3.Click, Button4.Click ...
' just add the extra clicks for the additional ones
' you will need to examine "Sender" to determine which was clicked
' your code here
End Sub
这也可以动态完成,例如对于在 Load 事件(或任何位置)中创建并添加到表单的控件:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
AddHandler Button1.Click, AddressOf AllButtonsClick
AddHandler Button2.Click, AddressOf AllButtonsClick
AddHandler Button3.Click, AddressOf AllButtonsClick
End Sub
连线all按钮到同一事件,您可以循环遍历控件集合(使用 Linq):
For Each b As Button In XXXXX.Controls.OfType(Of Button)
AddHandler b.Click, AddressOf MyClickHandler
Next
Where XXXXX
可能Me
或面板、组合框等 - 无论按钮在哪里。