有多个ComboBox使用同一事件

时间:2018-10-26 12:56:17

标签: vb.net events combobox event-handling

我在表单上大约有140个ComboBox。当有人在其中一个框内选择一个新项目时,我想突出显示该框。

我想使用SelectionChangeCommitted事件,并使用以下代码:

Private Sub cmbDesk1_SelectionChangeCommitted(sender As System.Object, e As System.EventArgs) Handles cmbDesk1.SelectionChangeCommitted
 Dim tbControl As ComboBox = DirectCast(sender, ComboBox)
 tbControl.BackColor = Drawing.Color.Red
 tabFloor1.Focus()

我知道我可以在子例程声明的“句柄”部分之后添加额外的行,但是这样做有一种巧妙的方法而又不向其中添加每个ComboBox? 类似于

Me.TabPage1.Controls.OfType(Of ComboBox)()

亲切的问候

马特

1 个答案:

答案 0 :(得分:4)

您始终可以自己循环播放所有组合框和AddHandler

For Each cb As ComboBox In Me.TabPage1.Controls.OfType(Of ComboBox)()
    AddHandler cb.SelectionChangeCommitted, AddressOf cmbDesk1_SelectionChangeCommitted
Next

这应该做一次。