C# 在Windows窗体中动态添加复选框只显示一个复选框

C# 在Windows窗体中动态添加复选框只显示一个复选框,c#,winforms,checkbox,C#,Winforms,Checkbox,我很抱歉,如果这似乎是n00bish,但我已经搜索这几天了。我正在尝试向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);

我很抱歉,如果这似乎是n00bish,但我已经搜索这几天了。我正在尝试向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(int i=0;i<10;i++)
{
box=新复选框();
box.Tag=i.ToString();
box.Text=“a”;
box.AutoSize=true;
方框位置=新点(10,i+10);
Main.Controls.Add(框);
}

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

实际上您已经创建了一个
复选框,但位于同一点内

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);
}
复选框;
对于(int i=0;i<10;i++)
{
box=新复选框();
box.Tag=i.ToString();
box.Text=“a”;
box.AutoSize=true;
box.Location=新点(10,i*50);//垂直
//box.Location=新点(i*50,10);//水平
此.Controls.Add(框);
}

在本例中,借助“动态分配名称属性”如何在其他一些操作(如“提交”按钮)中获取checkbox.checked属性。“如何获取所有内容”复选框处于选中状态,并且该复选框是在循环中创建的?

如果您可以使用按钮或事件制作每个按钮的实例,则

 CheckBox myCheckedBox = (CheckBox)sender;

尝试i*50而不是i+10,i+10只会将每个框移动1个像素,这只是OP的一个注释,因为与其他答案有一些混淆…使用
box=new CheckBox()在循环内,而不是
复选框=新复选框()也可以。感谢您的快速回复!问题是:复选框之间的垂直距离太小,并且复选框不是在for循环中创建的。@NominSim是的,我知道。这就是为什么我在我的答案中这么说。只需按照我的答案@cruskai239就可以看到difference@cruskai239只有一个问题……其他答案告诉您
box=new CheckBox()是错误的。每次调用new时,您都会创建一个
新建复选框
。。。