Проверка результатов событий при потере события нажатия кнопки в Winforms

StackOverflow https://stackoverflow.com/questions/662181

Вопрос

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

Проблема:Я ожидаю, что следующее, что произойдет, — это срабатывание событий нажатия кнопки.В случае с кнопкой «Отмена» так и есть.А вот события для кнопки "очистить" нет.Я не вижу никакой разницы между двумя кнопками/событиями.Что происходит и как это исправить?

Это было полезно?

Решение

Не знаю, что вас беспокоит, ни одно событие Click не должно запускаться, когда вы устанавливаете e.Cancel в обработчике событий проверки.Но есть лучший способ сделать это.Установите для свойства CausesValidation кнопок значение False.

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top