在Windows窗体上,有一组复选框,chx1,chx2,chx3 .... chx20。
我需要遍历1-20并设置这些复选框的Checked属性。是否有一个函数可以接受复选框名称作为字符串,要获取或设置为字符串的属性,以及设置属性的值)?
集:
GetSetProperty("chx1", "Checked", true);
或
得到:
GetSetProperty("chx1", "Checked");
答案 0 :(得分:3)
((CheckBox)this.Controls["checkBox1"]).Checked = true;
尝试一下这方面的事情。
答案 1 :(得分:0)
您可以使用Reflection来完成您正在谈论的内容,但更简单(IMO)并且更快速地将复选框放入数组并使用索引查找/操作它们。如果你这样做,要小心,因为你的复选框是从一个索引编制而数组从零索引,所以你必须考虑到一次性差异。
答案 2 :(得分:0)
您可以使用LINQ执行此操作,它将构建已检查或未检查的项目列表(您也可以执行foreach并检查或取消选中它们。
var checkedBoxList = container.Controls.OfType<CheckBox>().FirstOrDefault(
r => r.Checked);
foreach(CheckBox chkbox in CheckedBoxList)
{ chkbox.Checked = false;}
容器应该是托管所有控件的东西。您可以将其设置为表单,它将获取所有这些表单,或者您可以选择特定的组框/面板。