【发布时间】:2012-04-19 21:10:07
【问题描述】:
我正在开发一个 Windows 表单,它应该根据复选框的选中状态启用/禁用某些控件。要注意这一点,CheckedChanged 事件有一个事件处理程序。这适用于其他形式,具有相同的确切代码,但在这里无法正常工作。无论复选框是选中还是未选中,选中状态始终为 false。代码如下:
private void chkDisable_CheckedChanged(object sender, EventArgs e)
{
if (chkDisable.Checked)
{
DisableFormFields();
}
else
{
EnableFormFields();
}
}
就像我说的那样,这个确切的代码可以在一种形式下正常工作 - Checked 状态根据您刚刚更改的内容正确设置为 true 或 false。但在新形式中,无论是检查还是未检查,该方法中的 Checked 状态始终为 false。事件触发良好,并达到我在方法中设置的断点,但 Checked 状态永远不会改变。有什么建议吗?
谢谢!
【问题讨论】:
-
您要选中的复选框的名称是什么?即使它触发了正确的事件处理程序,也许您正在测试错误的控件(chkDisable)?
-
尝试使用 CheckBox.CheckState 属性:If(chkDisable.CheckState==CheckState.Checked)
标签: c# events checkbox status checked