如果我在designer.cs页面中设置了一个组合框单击事件,然后在程序运行期间的某个时刻,基于某些条件,我不再需要设置组合框Click事件,我该如何“未设置“它?我已经尝试过comboboxname.Click + = null并且我已经尝试将它设置为另一个无效的虚拟函数......都不起作用。
答案 0 :(得分:13)
集:
comboBox.Click += EventHandler;
取消设置:
comboBox.Click -= EventHandler;
答案 1 :(得分:2)
您无法使用的原因
comboboxname.Click = null
或
comboboxname.Click += null
事件Click
实际上包含事件处理程序列表。您的活动可能有多个订阅者,要撤消订阅活动,您只需删除自己的事件处理程序。正如在此处指出的那样,您可以使用-=
运算符来执行此操作。
答案 2 :(得分:1)
使用 - =运算符。
this.MyEvent -= MyEventHandler;
您的问题表明您对c#中的事件没有很好的理解 - 我建议您深入了解它。
答案 3 :(得分:1)
//to subscribe
comboboxname.Click += ComboboxClickHandler;
//to conditionally unsubscribe
if( unsubscribeCondition)
{
comboboxname.Click -= ComboboxClickHandler;
}
答案 4 :(得分:0)
假设你的处理程序是这样分配的:
this.comboBox1_Click += new System.EventHandler(this.comboBox1_Click);
像这样禁用它:
this.comboBox1.Click -= new System.EventHandler(this.comboBox1_Click);