Meh*_*ari 51
也许,最简单的方法(不需要取消订阅或其他东西)是声明一个布尔值并在处理程序的开头检查它:
bool dontRunHandler;
void Handler(object sender, EventArgs e) {
if (dontRunHandler) return;
// handler body...
}
Run Code Online (Sandbox Code Playgroud)
Ada*_*son 50
从什么角度禁用?如果要从处理程序上的委托列表中删除范围内的方法,则可以执行以下操作:
object.Event -= new EventHandlerType(your_Method);
Run Code Online (Sandbox Code Playgroud)
这将从委托列表中删除该方法,您可以稍后重新附加该方法
object.Event += new EventHandlerType(your_Method);
Run Code Online (Sandbox Code Playgroud)