考虑一个简单的.NET表单与几个单选按钮和一个复选框。
每个单选按钮都有一个CheckedChanged处理程序设置,它根据复选框的状态执行一些操作。
我的问题是,当我初始化默认的单选按钮被检查(从设计器属性窗口)CheckedChanged事件触发该单选按钮,但复选框尚未初始化,所以我得到一个空指针异常或处理程序中使用错误的值。无论哪种方式,我不希望运行处理程序代码,除非用户在表单加载后选择一个单选按钮。
我现在通过不初始化单选按钮来解决这个问题,但是我最终需要设置默认值,最好的地方就是设计器。我还可以添加一个布尔字段,它不会被设置为true,直到窗体完全加载,如果该值为false,则不会处理该事件,但它是一个脏的黑客。
我可以做些什么来防止该处理程序运行其代码?