7yp*_*oid 2 .net vb.net events button event-handling
在我的程序中,我有9个按钮,尽管每个事件处理程序中的代码都是相同的,但每个按钮都有9个独立的事件处理程序.事实证明,更改所有这些代码非常繁琐.是否可以创建一个Button.Click事件处理程序来处理所有按钮的Button.Click事件?
您可以修改HandlesVS生成的事件代码上的子句,以便它可以为多个控件处理相同的事件.在大多数情况下,有人可能希望将大多数(但不是全部)按钮点击汇集到一个过程.要更改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
Run Code Online (Sandbox Code Playgroud)
这也可以动态完成,例如在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
Run Code Online (Sandbox Code Playgroud)
要将所有按钮连接到同一事件,您可以循环访问控件集合(使用Linq):
For Each b As Button In XXXXX.Controls.OfType(Of Button)
AddHandler b.Click, AddressOf MyClickHandler
Next
Run Code Online (Sandbox Code Playgroud)
XXXXX可能是哪里Me或面板,组框等 - 按钮在哪里.
| 归档时间: |
|
| 查看次数: |
4416 次 |
| 最近记录: |