0

我在子表单中使用 CheckBox 作为切换按钮(checkBox.Appearance = Appearance.Button)。如果用户按下按钮,如果满足某些标准(例如温度范围内),将开始测量循环。CheckBox.Checked 属性在测量完成之前保持为真。

例如,如果温度超出范围,则会出现警告并且按钮将被重置。如果循环正确结束,也会发生同样的情况。最后调用这个不言自明的函数:

    /// <summary>
    /// Resets the button states to false
    /// </summary>
    public void ResetButton()
    {
        checkBox_Start.Checked = false;
    }

现在,在调试时,我看到 CheckBox_Start.Checked 属性为假并保持为假。但是 UI 没有显示实际值。它似乎仍然受到检查。我在所有级别上都尝试过 Refresh() 和 Update()。

有人有想法吗?什么可能阻止 UI 显示实际值?

4

4 回答 4

0
this.MyCheckBox.Checked=false;
于 2013-03-04T12:17:59.183 回答
0

我发现了一个类似的问题,除了 DataGridView。我找到的解决方法是使控件失效,然后请求重绘,如下:

public void ResetButton()
{
    checkBox_Start.Checked = false;
    checkBox_Start.Invalidate();
    checkBox_Start.Update();
}

试试看,看看能不能解决。

于 2013-03-04T09:21:02.560 回答
0

确保 InitializeComponent 没有运行两次。这将导致初始海报的控制行为。

于 2018-09-17T23:32:01.630 回答
0

我有同样的问题,在 CheckBox 属性和方法上花了一些时间之后,我终于意识到我在初始化这个控件的地方不是一个合适的。我正在使用一个半框架,在某些情况下不会出现在这段代码中。我使用这个简单的属性: checkBox_Start.Checked = false;

于 2018-06-10T11:37:58.017 回答