C# - Checkbox CheckedChanged事件检查状态错误

时间:2012-04-19 12:35:11

标签: c# events checkbox status checked

我正在使用Windows窗体,该窗体应根据复选框的选中状态启用/禁用某些控件。要注意这一点,CheckedChanged事件有一个事件处理程序。这对于其他形式很有用,具有相同的确切代码,但在这里工作不正常。无论是选中还是取消选中复选框,选中状态始终为false。这是代码:

    private void chkDisable_CheckedChanged(object sender, EventArgs e)
    {
        if (chkDisable.Checked)
        {
            DisableFormFields();
        }
        else
        {
            EnableFormFields();
        }
    }

就像我说的那样,这个确切的代码在一种形式下工作正常 - Checked状态根据你刚刚更改的内容正确设置为true或false。但是在新形式中,Checked状态在该方法中始终为false,无论是正在检查还是未选中。该事件触发正常,并命中我在方法中设置的断点,但Checked状态永远不会改变。有什么建议吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

检查您的eventHandler chkDisable_CheckedChanged是否已应用于正确的复选框,即chkDisable复选框。

如果问题仍然存在,删除重新拖动复选框控件并应用活动

应用强制转换和快捷方式不应该是解决问题的正确方法(这是我个人认为的。)

答案 1 :(得分:2)

试试这个

private void chkDisable_CheckedChanged(object sender, EventArgs e)
{
        if (((CheckBox)sender).Checked)
        {
            DisableFormFields();
        }
        else
        {
            EnableFormFields();
        }
}