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
private void SaveDataClicked(object sender, EventArgs args)
{
args.cancel = true;
}
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.