0

我有代码:

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

其中achsis 定义为 aCollection()和 a Count() = 109。当表单加载时,它会创建所有 109 个复选框并将它们放在 中TabelLayoutPanel2,如果它们是通过定义的,我找不到命名它们的方法,Dim chk = New CheckBox所以我希望它们被命名CheckBox1...CheckBox109

这个问题分为两部分,首先我想知道如何具体命名创建的复选框,其次我想知道是否有任何方法可以更改或修复我的代码以获取复选框Checked值,因为它没有'不允许我添加到该代码块.Checked中第 3 行的末尾我是 VBA 新手,知道的不多,所以如果你能尽可能地解释一下,那将非常有帮助,谢谢!

4

2 回答 2

1
  1. 创建 CheckBox 时设置它们的 Name 属性。在设计器中,您可以在属性窗口中轻松执行此操作。
  2. 我认为问题在于控件集合返回一个 Control 对象,而不是具有 Checked 属性的 Checkbox 对象。更改您的代码如下:

    Dim toAdd = DirectCast(TableLayoutPanel2.Controls("Checkbox" + CStr(x)), Checkbox)

于 2013-11-04T08:26:13.493 回答
1

1)只需name在创建新的时使用该属性CheckBox,所以当你这样做时,Dim chk = New CheckBox你可以遵循chk.name="checkboxname"

2)当您创建新控件时(例如Dim chk=New CheckBox,跟随chk.Checked=true

于 2013-11-04T08:27:56.840 回答