无法循环复选框

时间:2013-11-04 07:49:42

标签: vb.net visual-studio

我有代码:

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的新手并且不太了解,所以如果你能尽可能地解释它会非常有帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

  1. 创建CheckBox时,设置CheckBox的Name属性。在设计器中,您可以在属性窗口中轻松完成此操作。
  2. 我认为问题是控件集合返回一个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