我正在使用Windows窗体,该窗体应根据复选框的选中状态启用/禁用某些控件。要注意这一点,CheckedChanged事件有一个事件处理程序。这对于其他形式很有用,具有相同的确切代码,但在这里工作不正常。无论是选中还是取消选中复选框,选中状态始终为false。这是代码:
private void chkDisable_CheckedChanged(object sender, EventArgs e)
{
if (chkDisable.Checked)
{
DisableFormFields();
}
else
{
EnableFormFields();
}
}
就像我说的那样,这个确切的代码在一种形式下工作正常 - Checked状态根据你刚刚更改的内容正确设置为true或false。但是在新形式中,Checked状态在该方法中始终为false,无论是正在检查还是未选中。该事件触发正常,并命中我在方法中设置的断点,但Checked状态永远不会改变。有什么建议吗?
谢谢!
答案 0 :(得分:3)
检查您的eventHandler chkDisable_CheckedChanged
是否已应用于正确的复选框,即chkDisable
复选框。
如果问题仍然存在,删除并重新拖动复选框控件并应用活动。
应用强制转换和快捷方式不应该是解决问题的正确方法(这是我个人认为的。)
答案 1 :(得分:2)
试试这个
private void chkDisable_CheckedChanged(object sender, EventArgs e)
{
if (((CheckBox)sender).Checked)
{
DisableFormFields();
}
else
{
EnableFormFields();
}
}