我在 form2 (clbForm2) 中有一个选中列表框,我明确地将其映射到项目检查事件。现在我需要从form2中取消选中Form1中控件的所有选中项。在取消选中项目时,它会触发项目检查事件。有什么办法可以跳过这个事件。我在其中编写了代码,当从 form2 调用时我不想运行这些代码。请推荐一个好方法。
问问题
1459 次
2 回答
6
取消绑定事件并重新绑定它。
_checkBox.CheckedChanged -= new System.EventHandler(yourEventHandler);
// Do Check as you want.
_checkBox.CheckedChanged += new System.EventHandler(yourEventHandler);
于 2011-07-25T11:42:40.983 回答
2
我宁愿使用标志而不是取消绑定/重新绑定......
创建一个类级别变量,例如...
private bool processCheckChange = true;
然后在你的事件处理程序中......
OnCheckedChange()
{
if(processCheckChange)
{
//Handle check change
}
}
然后,当您想取消选中所有项目时...
UncheckAllItems()
{
processCheckChange = false;
//Uncheck all items
processCheckChange = true;
}
我认为这应该做的工作
于 2011-07-25T11:47:59.037 回答