gpt4 book ai didi

.net - 如何使单个事件处理程序处理ALL Button.Click事件?

转载 作者:行者123 更新时间:2023-12-01 15:11:50 25 4
gpt4 key购买 nike

在我的程序中,我有9个按钮,并且每个按钮都有9个单独的事件处理程序,尽管每个事件处理程序中的代码都是相同的。事实证明,更改所有代码都非常繁琐。是否可以使单个Button.Click事件处理程序处理我所有按钮的Button.Click事件?

最佳答案

您可以修改VS生成的事件代码上的Handles子句,以便它可以为多个控件处理同一事件。在大多数情况下,某人可能希望将大多数(但不是全部)按钮单击集中到一个过程。更改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

要将 所有按钮合理地连接到同一事件,可以遍历控件集合(使用Linq):
For Each b As Button In XXXXX.Controls.OfType(Of Button)
AddHandler b.Click, AddressOf MyClickHandler
Next
XXXXX可能是 Me或面板,groupbox等的地方-无论按钮在哪里。

关于.net - 如何使单个事件处理程序处理ALL Button.Click事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24022728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com