获取表单面板中动态生成的复选框的值 - Windows 应用程序 C#

本文关键字:复选框 Windows 应用程序 表单 动态 获取 | 更新日期: 2023-09-27 18:37:09

我在单击button时动态生成Checkboxes,我正在将其添加到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
    }
}

如何获取切克盒状态?

获取表单面板中动态生成的复选框的值 - Windows 应用程序 C#

您正在查找窗体控件而不是在 tableLayoutPanel1 中查找

像这样更改代码

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

将循环更改为:

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