c#动态复选框创建

时间:2011-10-05 14:12:00

标签: c# checkbox

我正在尝试在for循环中创建动态复选框。但是我在编译时遇到错误,但是当我运行create checkbox按钮并运行该函数时。 你能告诉我我做错了吗?

 public void CreateCheckBox (int i)
         {
              int y = 10;
              CheckBox[] _cb = new CheckBox[i];
              String chkBox = "chkBox_";
              for (int n = 0; n<i; n++)
                    {
                       _cb[n].Location = new Point(10, y);
                       _cb[n].Name= chkBox + n.ToString();
                       form1.Controls.Add(_cb[n]);
                       y+= 15;
                    }
         }

2 个答案:

答案 0 :(得分:6)

在循环内部,您必须创建一个新的复选框实例。

for (int n = 0; n<i; n++)
{
   _cb[n] = new CheckBox();
   _cb[n].Location = new Point(10, y);
   _cb[n].Name= chkBox + n.ToString();
   form1.Controls.Add(_cb[n]);
   y+= 15;
}

答案 1 :(得分:0)

定义Array Checkboxes时,数组中的对象将初始化为null。您需要使用new Checkbox()创建一个Checkbox实例。

在我看来,由于Form管理控件集合,因此您无需将它们保存到Checkbox[]中。因此,此代码段可能更具可读性:

public void CreateCheckBox (int max)
{
    String name = "chkBox_";
    int y = 10;
    for (int i = 0; n < max; i++)
    {
        Checkbox current = new Checkbox();
        current.Location = new Point(10, y);
        current.Name= name + i.ToString();
        form1.Controls.Add(current);
        y+= 15;
    }
}