我有代码:
Dim collect = New Collection()
For x As Integer = 1 To achs.Count Step 1
Dim toAdd = TableLayoutPanel2.Controls("CheckBox" + CStr(x))
collect.Add(toAdd)
Next
achs
定义为Collection()
且Count() = 109
。当表单加载时,它会创建所有109个复选框并将它们放在TabelLayoutPanel2
中,如果通过Dim chk = New CheckBox
定义它们,我找不到命名它们的方法,所以我希望它们被命名为{ {1}}。
这个问题分为两部分,首先我想知道如何具体命名创建的CheckBox,其次我想知道是否有任何方法可以更改或修复我的代码以获取复选框{{ 1}}值,因为它不允许我将CheckBox1...CheckBox109
添加到该代码块中的3 rd 行的末尾。我是VBA的新手并且不太了解,所以如果你能尽可能地解释它会非常有帮助,谢谢!
答案 0 :(得分:1)
我认为问题是控件集合返回一个Control对象,而不是一个具有Checked属性的Checkbox对象。按如下方式更改您的代码:
Dim toAdd = DirectCast(TableLayoutPanel2.Controls(“Checkbox”+ CStr(x)),Checkbox)
答案 1 :(得分:1)
1)在创建新name
时只需使用CheckBox
属性,因此当您执行Dim chk = New CheckBox
时,可以按chk.name="checkboxname"
2)当您创建新控件时(例如Dim chk=New CheckBox
,请按chk.Checked=true
)