Проверка результатов событий при потере события нажатия кнопки в Winforms
-
20-08-2019 - |
Вопрос
Фон:У меня есть форма с «очистить форму» и кнопкой «отмена».Если у меня есть неверные данные внутри раскрывающегося списка и я нажимаю любую из этих кнопок, срабатывает событие проверки раскрывающегося списка.Я добавил код в событие проверки, чтобы добиться успеха при нажатии «очистить» или «отменить».
Проблема:Я ожидаю, что следующее, что произойдет, — это срабатывание событий нажатия кнопки.В случае с кнопкой «Отмена» так и есть.А вот события для кнопки "очистить" нет.Я не вижу никакой разницы между двумя кнопками/событиями.Что происходит и как это исправить?
Решение
Не знаю, что вас беспокоит, ни одно событие Click не должно запускаться, когда вы устанавливаете e.Cancel в обработчике событий проверки.Но есть лучший способ сделать это.Установите для свойства CausesValidation кнопок значение False.
Другие советы
Я столкнулся с другим похожим сценарием.В поисках ответа я наткнулся на старый вопрос, который задавал несколько месяцев назад!В этом случае события проверки переместили фокус с исходного поля, поэтому к тому времени, когда событие кнопки было готово к срабатыванию, оно не могло этого сделать.Закончилось решение этой проблемы путем явного вызова события нажатия кнопки из проверки.