【发布时间】:2011-07-25 11:38:41
【问题描述】:
我在 form2 (clbForm2) 中有一个选中列表框,我明确地将其映射到项目检查事件。现在我需要从form2中取消选中Form1中控件的所有选中项。在取消选中项目时,它会触发项目检查事件。有什么办法可以跳过这个事件。我在其中编写了代码,当从 form2 调用时我不想运行它。请推荐一个好方法。
【问题讨论】:
标签: c# .net mdi checkedlistbox
我在 form2 (clbForm2) 中有一个选中列表框,我明确地将其映射到项目检查事件。现在我需要从form2中取消选中Form1中控件的所有选中项。在取消选中项目时,它会触发项目检查事件。有什么办法可以跳过这个事件。我在其中编写了代码,当从 form2 调用时我不想运行它。请推荐一个好方法。
【问题讨论】:
标签: c# .net mdi checkedlistbox
取消绑定事件并重新绑定。
_checkBox.CheckedChanged -= new System.EventHandler(yourEventHandler);
// Do Check as you want.
_checkBox.CheckedChanged += new System.EventHandler(yourEventHandler);
【讨论】:
我更喜欢使用标志而不是取消绑定/重新绑定...
创建一个类级别的变量,例如...
private bool processCheckChange = true;
然后在你的事件处理程序中做...
OnCheckedChange()
{
if(processCheckChange)
{
//Handle check change
}
}
那么当你想取消选中所有项目时...
UncheckAllItems()
{
processCheckChange = false;
//Uncheck all items
processCheckChange = true;
}
我认为这应该可以完成这项工作
【讨论】: