c#动态复选框创建

本文关键字:创建 复选框 动态 | 更新日期: 2023-09-27 18:10:34

我试图在for循环中创建动态复选框。但我得到的错误不是在编译,但当我运行创建复选框按钮和运行该函数。你能告诉我我做错了什么吗?

 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;
                    }
         }

c#动态复选框创建

在循环中,您必须创建一个checkbox的新实例。

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;
}

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

在我看来,您不需要将它们保存到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;
    }
}