Снятие флажков внутри групповых блоков - PullRequest
1 голос
/ 05 января 2010

У меня есть форма с несколькими групповыми полями, каждый из которых содержит несколько флажков. Я хочу снять флажки.

Я использую следующий код. Однако это не очищается.

Что я делаю не так?

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

Еще раз флажки находятся внутри групповых блоков.

1 Ответ

2 голосов
/ 05 января 2010

Когда флажки находятся в другом элементе управления, в групповых окнах вашего случая вам нужно использовать рекурсию, чтобы установить проверяемое свойство флажков. Коллекция 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);
    }
}
...