使用复选框名称作为字符串来获取和设置复选框属性

时间:2011-08-09 14:42:01

标签: c#

在Windows窗体上,有一组复选框,chx1,chx2,chx3 .... chx20。

我需要遍历1-20并设置这些复选框的Checked属性。是否有一个函数可以接受复选框名称作为字符串,要获取或设置为字符串的属性,以及设置属性的值)?

集:

GetSetProperty("chx1", "Checked", true);

得到:

GetSetProperty("chx1", "Checked");

3 个答案:

答案 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;} 

容器应该是托管所有控件的东西。您可以将其设置为表单,它将获取所有这些表单,或者您可以选择特定的组框/面板。