加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

winforms – 在Windows窗体中暂停控制事件的最佳方法?

发布时间:2020-12-14 04:09:29 所属栏目:Windows 来源:网络整理
导读:这似乎是一个非常简单和非常常见的问题.我能想到的最简单的例子是: 该表单有五个复选框,上面有一个“check all / check none”复选框.当用户选择检查所有复选框时,我切换“孩子”的状态 – 显然我不想触发所有孩子的检查事件,直到我完成设置所有复选框. 我
这似乎是一个非常简单和非常常见的问题.我能想到的最简单的例子是:

该表单有五个复选框,上面有一个“check all / check none”复选框.当用户选择检查所有复选框时,我切换“孩子”的状态 – 显然我不想触发所有孩子的检查事件,直到我完成设置所有复选框.

我找不到表单范围的暂停控制事件.如果我只是错过它那么简单的回答.除非我缺少一个简单的解决方案,暂停表单控制事件的最佳方法(最佳实践?已接受的解决方案?)是什么?

我之前遇到过这种情况,通常看到人们会这样做:
/*SNIP*/

private bool isMassUpdate;

public void Check1_Check(object sender,EventArgs e)
{
   if(!isMassUpdate)
   {
       do some stuff
   }
}

/*SNIP*/

您也可以分离并重新附加事件处理程序,但是,我被告知这可能是内存泄漏的来源.

有关内存泄漏和事件处理程序的信息:它们没有直接链接到附加和分离,但我们在一个应用程序中看到,对继承树的事件处理程序的错误引用会导致它.

> .NET Memory Leak Case Study: The Event Handlers That Made The Memory Baloon
> On event handlers and memory leaks

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读