Тестер навыков программирования (проблема) v2.0 - PullRequest
1 голос
/ 04 февраля 2009

Если вы еще не прочитали проблему first , знайте, чтобы наверстать упущенное. Теперь, как мне убрать эти флажки? Я попытался использовать тот же подход, который @colithium сказал мне использовать для проверки состояния всех флажков, но когда я запустил программу и нажал кнопку «Очистить», я получил следующую ошибку во время выполнения:

Невозможно привести объект типа 'System.Windows.Forms.Button' к типу 'System.Windows.Forms.CheckBox'.

Ответы [ 3 ]

6 голосов
/ 04 февраля 2009

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

foreach (Control c in this.Controls) {
    CheckBox cb = c as CheckBox;
    if (cb!=null) {
        //do your logic
    }
}
1 голос
/ 04 февраля 2009

Полагаю, ваш метод выглядит примерно так:

private void clearButton_Click(object sender, EventArgs e)  
{  
    CheckBox cb = (CheckBox)sender;  
    cb.Checked = false;  
}  

В этом случае «Отправитель» - это кнопка очистки, а не флажок. Заимствование из ответа Stormenet:

private void clearButton_click(object sender, EventArgs e)  
{    
    foreach (Control c in this.Controls)   
    {  
        CheckBox cb = c as CheckBox;  
        if (cb != null)  
        {  
            cb.Checked = false;  
        }
    }
}

1 голос
/ 04 февраля 2009

Установить CheckBox.Checked в false. Если это не то, что вам нужно, пожалуйста, предоставьте больше информации в вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...