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