我正在尝试更新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));
}
我想我可能只是试图以错误的方式访问该复选框,就好像我只是尝试访问包含它的面板我可以毫无问题地操作面板。
谢谢, 萨姆
答案 0 :(得分:3)
目前尚不清楚e.Index
的来源,但我认为没有必要:
CheckBox checkBox;
if (flowLayoutPanel2.Controls.ContainsKey("selected1")) {
checkBox = (CheckBox)flowLayoutPanel2.Controls["selected1"];
}
如果您对该值感兴趣,最好使用CheckBox而不仅仅是Control。