【发布时间】:2016-06-06 14:11:19
【问题描述】:
这是我第一次尝试在用户表单中使用动态创建的控件。原因是某些处理总是会返回不同数量的行。
我用下面的代码创建了一个类对象cControlEvent。 (我删掉了与复选框无关的代码)
Public WithEvents CHK As MSForms.CheckBox
Private Sub CHK_Change()
** tell me which box was changed **
End Sub
在代码模块中,我有以下代码:
Dim CHK_Evts As New Collection
sub Form_Builder()
**non relevant code deleted****
Set Evt = New cControlEvent
If i_Columns = 1 Then
Set Evt.CHK = ctl
CHK_Evts.Add Evt
Else
** more code**
End if
end sub
我需要更改/添加什么才能获得触发更改事件的控件的名称?
编辑添加:
我在用户表单的每一行上都有一系列动态创建的复选框和文本框,每行前面都有一个复选框,当复选框被选中/取消选中时,我需要更改该行中所有文本框的背景色。每个控件都由它的类型命名,然后像这样的行然后列 CHX_1_1 将是第 1 行第 1 列上的复选框,而 TXT_1_5 将是第 1 行第 5 列。所以,如果我知道复选框的名称是什么,我拥有所有我需要使用简单的 for-next 循环更改该行上的其他控件。
【问题讨论】:
-
CHK变量包含您需要了解的有关复选框的所有信息 - 将MsgBox Chk.Name添加到您的CHK_Change代码中,它将为您提供名称。 -
@DarrenBartrup-Cook 做到了!!!!谢谢!