当我不知道到底需要多少个框时,我试图弄清楚如何在表单上创建动态复选框。
问题是我不知道如何调暗多个对象。这是我用于创建一个复选框的代码
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
最佳答案
似乎 CheckBox
实例之间唯一不同且未计算的项目是文本。如果是这样,那么您可以使用以下代码根据 String
列表添加一组 CheckBox
实例。
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
关于vb.net动态创建复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3620847/