14

对不起,如果这看起来很奇怪,但我已经搜索了几天了。我正在尝试将复选框动态添加到 Windows 窗体;但是,表单上只出现一个复选框。这是我的代码:

for (int i = 0; i < 10; i++)
{
    box = new CheckBox();
    box.Tag = i.ToString();
    box.Text = "a";
    box.AutoSize = true;
    box.Location = new Point(10, i + 10);
    Main.Controls.Add(box);
}

如您所见,我正在通过 for 循环添加复选框。我试过弄乱位置并启用自动调整大小,以防它们以某种方式重叠。结果是一个带有文本“a”的复选框。

4

3 回答 3

20

实际上,您已经创建了一个CheckBox但在同一点内。

CheckBox box;
for (int i = 0; i < 10; i++)
{
    box = new CheckBox();
    box.Tag = i.ToString();
    box.Text = "a";
    box.AutoSize = true;
    box.Location = new Point(10, i * 50); //vertical
    //box.Location = new Point(i * 50, 10); //horizontal
    this.Controls.Add(box);
}
于 2013-02-21T15:04:50.027 回答
1

在这种情况下,借助动态分配 Name 属性如何实现 checkbox.checked 属性,在提交按钮等其他操作中。我如何才能选中所有复选框并在循环中创建?

于 2015-04-09T06:54:25.607 回答
0

如果你有每个按钮的实例,你可以用你的按钮或你的事件来制作类似的东西

 CheckBox myCheckedBox = (CheckBox)sender;
于 2016-11-10T04:04:58.677 回答