如何取消winforms中的任何事件?

时间:2010-04-20 05:59:18

标签: c# .net winforms event-handling

我想从该功能范围内取消一个事件。

EG。我按下了按钮点击事件,在错误验证时,我想取消此事件。同样我也想取消其他活动。

我如何在C#中执行此操作

2 个答案:

答案 0 :(得分:7)

这取决于场景;在大多数情况下:不是取消事件,而是什么都不做,例如:

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;)。

请注意,在这种情况下,我不会在按钮上显示自动对话框结果;当(如果)处理程序成功完成时手动应用它。

答案 1 :(得分:-3)

private void SaveDataClicked(object sender, EventArgs args)
 {
   args.cancel = true;
 }