0

我正在开发一个 Windows 表单,它应该根据复选框的选中状态启用/禁用一些控件。要注意这一点,CheckedChanged 事件有一个事件处理程序。这适用于其他形式,具有相同的确切代码,但在这里无法正常工作。无论复选框是选中还是未选中,选中状态始终为 false。这是代码:

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

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

谢谢!

4

2 回答 2

3

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

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

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

于 2012-04-19T12:41:15.273 回答
2

试试这个

private void chkDisable_CheckedChanged(object sender, EventArgs e)
{
        if (((CheckBox)sender).Checked)
        {
            DisableFormFields();
        }
        else
        {
            EnableFormFields();
        }
}
于 2012-04-19T12:44:29.127 回答