我有一个包含多个组框的表单,每个组包含几个复选框。我想清除复选框。
我使用以下代码。但是它没有被清除。
我做错了什么?
foreach (Control ctrl in this.Controls)
{
if (ctrl is CheckBox)
((CheckBox)(ctrl)).Checked = false;
}
复选框再次出现在组框内。
答案 0 :(得分:2)
当复选框位于另一个控件中时,在您的案例组框中,您需要使用递归来设置选中复选框的属性。集合this.Controls只返回最接近的子控件。
setCheckBoxesUnChecked(this);
public function setCheckBoxesUnChecked(Control parent)
{
foreach (Control ctrl in parent.Controls)
{
if (ctrl is CheckBox)
((CheckBox)ctrl).Checked = false;
setCheckBoxesUnChecked(ctrl);
}
}