首页 > 解决方案 > 让多个 ComboBox 使用相同的事件

问题描述

我在一个表单上有大约 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)()

亲切的问候

马特

标签: vb.neteventscomboboxevent-handling

解决方案


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

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

这应该做一次。


推荐阅读