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

如何防止值更改事件触发在.NET中的表单初始化?

发布时间:2020-12-14 21:27:06 所属栏目:资源 来源:网络整理
导读:考虑一个简单的.NET表单与几个单选按钮和一个复选框。 每个单选按钮都有一个CheckedChanged处理程序设置,它根据复选框的状态执行一些操作。 我的问题是,当我初始化默认的单选按钮被检查(从设计器属性窗口)CheckedChanged事件触发该单选按钮,但复选框尚未
考虑一个简单的.NET表单与几个单选按钮和一个复选框。

每个单选按钮都有一个CheckedChanged处理程序设置,它根据复选框的状态执行一些操作。

我的问题是,当我初始化默认的单选按钮被检查(从设计器属性窗口)CheckedChanged事件触发该单选按钮,但复选框尚未初始化,所以我得到一个空指针异常或处理程序中使用错误的值。无论哪种方式,我不希望运行处理程序代码,除非用户在表单加载后选择一个单选按钮。

我现在通过不初始化单选按钮来解决这个问题,但是我最终需要设置默认值,最好的地方就是设计器。我还可以添加一个布尔字段,它不会被设置为true,直到窗体完全加载,如果该值为false,则不会处理该事件,但它是一个脏的黑客。

我可以做些什么来防止该处理程序运行其代码?

解决方法

“我也可以,但是一个布尔型字段,在表单完全加载之前并未设置为true,如果该值为false,则不会处理该事件,但这是一个脏的黑客。

这也是最简单和最好的方法!

让我们说.NET提供了一种简单的方式来转换和关闭所有的事件处理程序,直到加载表单。即使只是你正在处理的那些。禁用您想要启用的功能仍然没有足够的灵活性,但是禁用了您没有启用的功能。通常表单设置发生,您希望事件触发。如果没有事件发生,表单也不会建立正确的。

(编辑:李大同)

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

    推荐文章
      热点阅读