在表单面板中获取动态生成复选框的值 - windows application c#

时间:2016-03-02 09:30:32

标签: c#

我正在Checkboxes点击动态生成button我将添加到TableLayoutPanel中的面板。

Panel panel1=new panel();
CheckBox box = new CheckBox();
box.Name = "cb_" + count;
box.AutoSize = true;
panel1.Controls.Add(box);
tableLayoutPanel1.Controls.Add(panel1);
count++;

我需要检查是否在“保存”按钮单击上选中了这些复选框。但是当我尝试检索Checkbox时,它返回null。 (但如果我将复选框直接添加到表单而不是TablelayoutPanel,我就可以检索它。)

for (int i = 0; i >= count; i++)
{
    CheckBox cb =  this.Controls["cb_" + i] as CheckBox;// Returns Null
    if (cb.Checked)
    {
       //Add code
    }
}

如何获得checbox状态?

2 个答案:

答案 0 :(得分:1)

您正在查看表单控件而不是tableLayoutPanel1

像这样更改代码

for (int i = 0; i >= count; i++)
{
    CheckBox cb =  tableLayoutPanel1.Controls["cb_" + i] as CheckBox;
    if (cb.Checked)
        {
           //Add code
        }
}

答案 1 :(得分:0)

将循环更改为:

foreach(Control c in panel1.Controls)
{
     CheckBox cb = c as CheckBox;
     if (cb!=null)
     {
          if (cb.Checked)
          {
               //Add code
          }
     }
}