vb.net动态创建复选框

vb.net动态创建复选框,vb.net,checkbox,Vb.net,Checkbox,当我不知道需要多少个复选框时,我正试图弄清楚如何在表单上创建动态复选框 问题是我不知道如何使多个对象变暗。这是我创建一个复选框的代码 Dim checkBox As New CheckBox() Form1.Controls.Add(checkBox) checkBox.Location = New Point(10, 10) checkBox.Text = "testing" checkBox.Checked = True checkBox.Size = New Size(100, 20)

当我不知道需要多少个复选框时,我正试图弄清楚如何在表单上创建动态复选框

问题是我不知道如何使多个对象变暗。这是我创建一个复选框的代码

Dim checkBox As New CheckBox()

Form1.Controls.Add(checkBox)
checkBox.Location = New Point(10, 10)
checkBox.Text = "testing"
checkBox.Checked = True
checkBox.Size = New Size(100, 20)
它工作正常,但我无法添加多个复选框而不必执行以下操作:

Dim checkBox As New CheckBox()
Dim checkBox2 As New CheckBox()

Form1.Controls.Add(checkBox)
checkBox.Location = New Point(10, 10)
checkBox.Text = "testing"
checkBox.Checked = True
checkBox.Size = New Size(100, 20)

Form1.Controls.Add(checkBox2)
checkBox2.Location = New Point(40, 10)
checkBox2.Text = "testing2"
checkBox2.Checked = True
checkBox2.Size = New Size(100, 20)
等等

是否有一种方法可以使多个复选框变暗,而不必为每个复选框编写多个变暗语句

对不起,也许我应该这么说

我想做这样的事情:

 dim checkBox() as CheckBox

 do until i = 50
    Form1.Controls.Add(checkBox(i))
    checkBox(i).Location = New Point(10, 10)
    checkBox(i).Text = "testing " & i
    checkBox(i).Checked = True
    checkBox(i).Size = New Size(100, 20)
    i += 1
 loop

将其放入循环,包括新语句,但改变位置

您还可以克隆对象,可能会有性能损失。。。很抱歉,我不知道Vb.net,我会给你c代码,希望它会类似。我认为这并不是针对您的案例的最佳解决方案(一个循环就可以了),但它可能适用于具有类似但更一般问题的人

CheckBox CB2 = (CheckBox)CloneObject(CheckBox1);
//在这里更改位置。。。 Form1.Controls.Add(复选框CB2)


复选框
实例之间,唯一不同且未计算的项目似乎是文本。如果是这样的话,您可以使用下面的代码根据
字符串的列表添加一组
复选框
实例

Dim data as String() = New String() { "testing", "testing2" }
Dim offset = 10
For Each cur in data 
  Dim checkBox = new CheckBox()
  Form1.Controls.Add(checkBox)
  checkBox.Location = New Point(offset, 10)
  checkBox.Text = cur
  checkBox.Checked = True
  checkBox.Size = New Size(100, 20)
  offset = offset + 30
Next

这就是我要查找的,但是,在您的示例中,当它应该循环两次时,它只循环一次?@StealthRT,它会查找
数据
数组中的每个值。正确,它确实说data=2,但它在表单上只有一个复选框(测试)当它应该有2?@StealthRT时,第二个复选框可能不在屏幕上,或者只是隐藏在另一个复选框的下面。尝试更改偏移值或使窗体变大以查看其他复选框。啊,是的,我没有足够大的数字(我第一次将其设置为50。现在是150,它显示出来)。谢谢
Dim data as String() = New String() { "testing", "testing2" }
Dim offset = 10
For Each cur in data 
  Dim checkBox = new CheckBox()
  Form1.Controls.Add(checkBox)
  checkBox.Location = New Point(offset, 10)
  checkBox.Text = cur
  checkBox.Checked = True
  checkBox.Size = New Size(100, 20)
  offset = offset + 30
Next