Проверка события запущена из других элементов управления? - PullRequest
0 голосов
/ 06 декабря 2010

У меня есть CheckBox как часть пользовательского элемента управления в форме. Я обрабатываю его событие Validating, чтобы убедиться, что установлено не более 5 флажков. Если 5 уже отмечены, я отменяю событие. Это прекрасно работает.

Однако теперь, когда у меня установлено 5 флажков, каждое событие отменяется (кроме снятия флажка с первого проверенного флажка). Это означает, что нажатия кнопок, текстовые поля, выпадающий список и выходы из приложения не работают. Объект отправителя все еще является CheckBox; просто не знаю, почему это происходит.

Почему событие проверки включается каждый раз, когда я делаю что-нибудь ? (Я бы подумал, что это будет срабатывать только при нажатии флажка элемента управления). Правильно ли использовать событие «Проверка»?

Дополнительные странные вещи: Никакое событие не обрабатывается, когда я устанавливаю или отменяю флажок 5, несмотря на наличие там обработчика событий. Этот же флажок вызовет событие проверки, если это 4-й или 6-й флажок.

Мой код: В родительской форме:

    private List<MyCustomClass> GetSelectedItems()
    {
        List<MyCustomClass> result = new List<MyCustomClass>();
        foreach (MyCustomClass c in listOfControls)
        {
            if (c.Selected())
            {
                result.Add(c);
            }
        }
        return result;
    }

    private void validate(object sender, CancelEventArgs e)
    {
        if (GetSelectedItems().Count == 5)
        {
             e.Cancel = true;
        }
    }

Метод Selected MyCustomClass просто возвращает chkBox.Checked.

1 Ответ

0 голосов
/ 06 декабря 2010

Как вы проверяете ввод CheckBox?Это либо true, либо false.Сравниваете ли вы эту проверку с другими состояниями, чтобы определить, является ли текущее состояние проверки действительным?

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