清除列表框中的选中项,而不触发itemcheck事件
本文关键字:itemcheck 事件 列表 清除 | 更新日期: 2023-09-27 18:03:17
我在form2 (clbForm2)中得到了一个复选框,我显式地将其映射到一个项目检查事件。现在我需要从form2中取消选中Form1中控件的所有选中项。在取消检查项时,它将触发项检查事件。有什么办法可以不参加这个活动吗?我在里面写的代码,我不想从form2调用时运行。
取消事件绑定并重新绑定。
_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;
}
我想这个应该可以了