如何防止值更改事件触发在.NET中的表单初始化?
发布时间:2020-12-14 21:27:06 所属栏目:资源 来源:网络整理
导读:考虑一个简单的.NET表单与几个单选按钮和一个复选框。 每个单选按钮都有一个CheckedChanged处理程序设置,它根据复选框的状态执行一些操作。 我的问题是,当我初始化默认的单选按钮被检查(从设计器属性窗口)CheckedChanged事件触发该单选按钮,但复选框尚未
考虑一个简单的.NET表单与几个单选按钮和一个复选框。
每个单选按钮都有一个CheckedChanged处理程序设置,它根据复选框的状态执行一些操作。 我的问题是,当我初始化默认的单选按钮被检查(从设计器属性窗口)CheckedChanged事件触发该单选按钮,但复选框尚未初始化,所以我得到一个空指针异常或处理程序中使用错误的值。无论哪种方式,我不希望运行处理程序代码,除非用户在表单加载后选择一个单选按钮。 我现在通过不初始化单选按钮来解决这个问题,但是我最终需要设置默认值,最好的地方就是设计器。我还可以添加一个布尔字段,它不会被设置为true,直到窗体完全加载,如果该值为false,则不会处理该事件,但它是一个脏的黑客。 我可以做些什么来防止该处理程序运行其代码? 解决方法
“我也可以,但是一个布尔型字段,在表单完全加载之前并未设置为true,如果该值为false,则不会处理该事件,但这是一个脏的黑客。
这也是最简单和最好的方法! 让我们说.NET提供了一种简单的方式来转换和关闭所有的事件处理程序,直到加载表单。即使只是你正在处理的那些。禁用您想要启用的功能仍然没有足够的灵活性,但是禁用了您没有启用的功能。通常表单设置发生,您希望事件触发。如果没有事件发生,表单也不会建立正确的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |