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

时间:2016-10-18 15:27:17

标签: c# winforms checkbox

我使用Winforms,我无法从复选框中检索不确定状态。 它总是返回"未经检查" ...

我使用此代码设置复选框以在表单加载时不确定:

 checkBox.CheckState = CheckState.Indeterminate;

它有效。

然后当我点击复选框时," CheckedChanged"事件正在解雇,如果状态不确定,我想什么都不做。 但它返回状态"未经检查"而复选框显示为"不确定" ..

这是我如何尝试检索复选框状态:

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

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

感谢您花时间帮助我。

1 个答案:

答案 0 :(得分:1)

我添加了一个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。