Fly*_*wat 10
如果您在表单中工作,您应该可以执行以下操作:
伪代码:
Delegate[] events = Form1.SomeEvent.GetInvokationList();
foreach (Delegate d in events)
{
Form1.SomeEvent -= d;
}
Run Code Online (Sandbox Code Playgroud)
从表单的外部,你的SOL.
如果你知道那些处理程序是什么,只需按照订阅它们的方式删除它们,除了 - =而不是+ =.
如果你不知道处理程序是什么,你就无法删除它们 - 这个想法是事件封装阻止了一个感兴趣的一方在观察一个事件时破坏了另一个类的兴趣.
编辑:我一直在假设您正在谈论由不同的类实现的事件,例如控件.如果您的类"拥有"该事件,则只需将相关变量设置为null.