事件怎么可能System.ComponentModel.CancelEventArgs
使用?假设我们有以下代码:
public event CancelEventHandler EventTest = delegate { };
public void MakeSomethingThatRaisesEvent()
{
CancelEventArgs cea = new CancelEventArgs();
EventTest(this, cea);
if (cea.Cancel)
{
// Do something
}
else
{
// Do something else
}
}
如果不止一名代表在事件中注册会怎样?有什么办法可以得到所有订阅者的结果?
这有时(至少)在 Winforms 上使用。如果不可能获得所有值,他们假设事件只有一个订阅者?
最佳答案
要分别询问每个订阅者,您需要访问列表:
foreach (CancelEventHandler subHandler in handler.GetInvocationList())
{
// treat individually
}
然后你可以依次检查每一个;否则,您将获得最后一票。
关于c# - 如何使用像 CancelEventArgs 这样的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1539292/