清除组框内的复选框

时间:2010-01-05 09:05:01

标签: winforms c#-2.0

我有一个包含多个组框的表单,每个组包含几个复选框。我想清除复选框。

我使用以下代码。但是它没有被清除。

我做错了什么?

foreach (Control ctrl in this.Controls)
{
     if (ctrl is CheckBox)
         ((CheckBox)(ctrl)).Checked = false;                    
}

复选框再次出现在组框内。

1 个答案:

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