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

本文关键字:复选框 字符串 设置 属性 获取 | 更新日期: 2023-09-27 18:05:13

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

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

:

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

得到:

GetSetProperty("chx1", "Checked");

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

((CheckBox)this.Controls["checkBox1"]).Checked = true;

按下面的样式试试

您可以使用Reflection来做您正在谈论的事情,但是将复选框放在数组中并使用索引来查找/操作它们更容易(IMO)和更快。如果这样做,要小心,因为复选框是从1开始索引的,而数组是从0开始索引的,所以必须考虑一次性的差异。

您可以使用LINQ来执行此操作,它将构建选中或未选中的项目列表(您也可以执行foreach并选中或取消选中它们)。

var checkedBoxList = container.Controls.OfType<CheckBox>().FirstOrDefault(
r => r.Checked);
foreach(CheckBox chkbox in CheckedBoxList)
{ chkbox.Checked = false;} 

容器应该承载所有的控件。你可以设置这个作为你的表单,它会得到所有的,或者你可以选择特定的组框/面板。