vb.net - 让多个 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)()
亲切的问候
马特
解决方案
您始终可以自己循环所有组合框和AddHandler。
For Each cb As ComboBox In Me.TabPage1.Controls.OfType(Of ComboBox)()
AddHandler cb.SelectionChangeCommitted, AddressOf cmbDesk1_SelectionChangeCommitted
Next
这应该做一次。
推荐阅读
- vb.net - 通过字符串获取属性值的函数visual basic
- python - Raspberry Pi 3 omxplayer 错误 - 使用按钮播放视频
- c++ - 如何在非轴对齐框(任意旋转的框)内找到点的相对偏移量
- javascript - 返回函数在我的代码中不起作用导致无限循环
- javascript - 从雅虎财经的交互式图表中抓取数据的有效方法
- python - pyqt5如何修复VBox中的图像大小?
- php - 按钮调用控制器功能/方法
- c++ - GL_TEXTURE_2D_MULTISAMPLE 未在此范围内声明 OpenGL 4.6
- windows - 如何在 Windows 上使用 Fiddler 监控 docker push 生成的 HTTP 流量?
- excel - excel日期格式不起作用mm / dd / yyyy到yyyy-mm-dd