我在一个子窗体中使用CheckBox作为切换按钮(checkBox.Appearance = Appearance.Button)。如果用户按下按钮,如果满足某些条件(例如,温度在范围内),则测量周期将开始。在测量完成之前,CheckBox.Checked属性一直保持为true。
例如,如果温度超出范围,则会出现警告并重置按钮。如果循环正确结束,也会发生同样的情况。最后,这个自解释函数被调用:
/// <summary>
/// Resets the button states to false
/// </summary>
public void ResetButton()
{
checkBox_Start.Checked = false;
}
现在,在调试时,我看到CheckBox_Start.Checked属性为false并保持为false。但是UI并不显示实际的值。它似乎仍处于选中状态。我已经在所有级别上尝试过Refresh()和Update()。
有谁有主意吗?什么可能会阻止UI显示实际的值?
发布于 2013-03-04 17:21:03
我发现了类似的问题,除了DataGridView。我找到的解决方案是使控件无效,然后请求重新绘制,如下所示:
public void ResetButton()
{
checkBox_Start.Checked = false;
checkBox_Start.Invalidate();
checkBox_Start.Update();
}
试试这个,看看能不能修好。
发布于 2013-03-04 20:17:59
this.MyCheckBox.Checked=false;
发布于 2018-06-10 19:37:58
我也有同样的问题,在花了一些时间在CheckBox属性和方法上之后,我终于意识到我初始化这个控件的地方并不适合。我使用的是semi框架,在某些情况下它不会出现在这段代码中。我使用这个简单的属性:checkBox_Start.Checked = false;
https://stackoverflow.com/questions/15197964
复制相似问题