从复选框Winforms中检索不确定状态



我正在使用Winforms,我有麻烦从复选框检索不确定的状态。它总是返回"unchecked"…

我用这段代码来设置复选框,以确定何时加载表单:

 checkBox.CheckState = CheckState.Indeterminate;

它的工作原理。

当我点击复选框时,"CheckedChanged"事件正在触发,如果状态不确定,我想什么都不做。但是它返回状态为"unchecked",而checkbox显示为"indeterminate".

下面是我如何检索复选框状态:

CheckBox c = sender as CheckBox;
  if (c.CheckState == CheckState.Indeterminate)
        {
            MessageBox.Show("Nope");
        }

我没有找到一个解决方案,除了在WPF,但我使用Winforms.

谢谢你花时间帮我。

我添加了一个CheckBox控件,ThreeState属性设置为true
Form_Load中,我以与您相同的方式将CheckState设置为CheckState.Indeterminate
我已经订阅了CheckBox上的CheckStateChanged事件。

我可以像这样得到CheckState:

private void CheckStateChanged(object sender, EventArgs e)
{
    var checkbox = sender as CheckBox;
    switch (checkbox.CheckState)
    {
        case CheckState.Checked:
            MessageBox.Show("Checked");
            break;
        case CheckState.Unchecked:
            MessageBox.Show("Unchecked");
            break;
        case CheckState.Indeterminate:
            MessageBox.Show("Indeterminate");
            break;
        default:
            MessageBox.Show("Nothing");
            break;
    }
}

显然你要用你的代码代替MessageBox

最新更新