如何在流布局面板中访问复选框值?

时间:2012-07-23 18:57:17

标签: c# checkbox flowlayoutpanel

我正在尝试更新c#中flowlayoutpanel内复选框的值。 将为每个创建的面板生成复选框,并将其命名为“selected1”。

尝试访问我正在使用的代码中的特定复选框

flowLayoutPanel2.Controls[e.Index].Controls["selected1"]

我尝试创建一个CheckBox对象,并将Name属性作为值并获取错误说明:

System.NullReferenceException: Object reference not set to an instance of an object.

我正在使用的代码是:

try
{
    System.Windows.Forms.Control checkBox = new System.Windows.Forms.Control();
    checkBox = flowLayoutPanel2.Controls[e.Index].Controls["selected1"];
    MessageBox.Show(Convert.ToString(checkBox.Name));
}
catch (Exception ex)
{
    MessageBox.Show(Convert.ToString(ex));
}

我想我可能只是试图以错误的方式访问该复选框,就好像我只是尝试访问包含它的面板我可以毫无问题地操作面板。

谢谢, 萨姆

1 个答案:

答案 0 :(得分:3)

目前尚不清楚e.Index的来源,但我认为没有必要:

CheckBox checkBox;
if (flowLayoutPanel2.Controls.ContainsKey("selected1")) {
  checkBox = (CheckBox)flowLayoutPanel2.Controls["selected1"];
}

如果您对该值感兴趣,最好使用CheckBox而不仅仅是Control。