我使用Winforms,我无法从复选框中检索不确定状态。 它总是返回"未经检查" ...
我使用此代码设置复选框以在表单加载时不确定:
checkBox.CheckState = CheckState.Indeterminate;
它有效。
然后当我点击复选框时," CheckedChanged"事件正在解雇,如果状态不确定,我想什么都不做。 但它返回状态"未经检查"而复选框显示为"不确定" ..
这是我如何尝试检索复选框状态:
CheckBox c = sender as CheckBox;
if (c.CheckState == CheckState.Indeterminate)
{
MessageBox.Show("Nope");
}
除了在WPF中我没有找到解决方案,但我使用Winforms ..
感谢您花时间帮助我。
答案 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。