2

我正在尝试更新 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));
}

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

谢谢,山姆

4

1 回答 1

3

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

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

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

于 2012-07-23T19:03:25.570 回答