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

我想从该函数范围内取消事件。

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

我怎么能在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取消一些外部行为 – forms关闭是最明显的例子(设置e.Cancel = true; )。

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

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