我想在函数内取消一个事件。
例如,当我按下按钮并进行错误验证时,我想要取消此事件。同样,我也想取消其他事件。
如何在C#中实现这一点?
例如,当我按下按钮并进行错误验证时,我想要取消此事件。同样,我也想取消其他事件。
如何在C#中实现这一点?
这要看具体情况。在大多数情况下,不要取消事件,而是什么都不做,例如:
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
取消一些外部行为,关闭窗体就是最明显的例子(设置e.Cancel = true;
)。
请注意,在这种情况下,我不会在按钮上自动应用对话框结果;只有当处理程序成功完成时才手动应用它。
private void SaveDataClicked(object sender, EventArgs args)
{
args.cancel = true;
}