How to cancel any event in winforms?

后端 未结 2 1116
说谎
说谎 2021-01-18 05:07

I want to cancel an event from within that function scope.

Eg. I pressed button click event and on false validation, I want to cancel this event. Likewise i want to

相关标签:
2条回答
  • 2021-01-18 05:24
    private void SaveDataClicked(object sender, EventArgs args)
     {
       args.cancel = true;
     }
    
    0 讨论(0)
  • 2021-01-18 05:37

    It depends on the scenario; in most cases: rather than cancel the event, just do nothing, for example:

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

    or:

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

    There are some events that expose a CancelEventArgs (or similar), allowing to to cancel some external behaviour via the args - form-closing being the most obvious example (set e.Cancel = true;).

    Note that in this scenario I would not have an automatic dialog-result on the button; apply that manually when (if) the handler completes successfully.

    0 讨论(0)
提交回复
热议问题