Как отменить любое событие в winforms? - PullRequest
7 голосов
/ 20 апреля 2010

Я хочу отменить событие из области действия этой функции.

Например. Я нажал кнопку нажатия события и при ложной проверке хочу отменить это событие. Точно так же я хочу отменить и другие события.

Как я могу сделать это в C #

Ответы [ 2 ]

7 голосов
/ 20 апреля 2010

Это зависит от сценария;в большинстве случаев: вместо отменить событие, просто ничего не делать, например:

private void SaveDataClicked(object sender, EventArgs args) {
    if(!ValidateData()) return;
    // [snip: code that does stuff]
}

или:

private void SaveDataClicked(object sender, EventArgs args) {
    if(ValidateData()) {
        // [snip: code that does stuff]
    }
}

Существуют некоторые события, которые представляютCancelEventArgs (или аналогичный), позволяющий отменить некоторые внешние поведения с помощью args - наиболее очевидным примером является закрытие формы (set e.Cancel = true;).

Обратите внимание,в этом случае у меня не было бы автоматического диалогового результата на кнопке;примените это вручную, когда (если) обработчик завершится успешно.

0 голосов
/ 15 июня 2012
private void SaveDataClicked(object sender, EventArgs args)
 {
   args.cancel = true;
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...