【发布时间】:2020-04-15 09:47:34
【问题描述】:
我总共有 6 个复选框。我想根据剩余 5 个复选框的状态选中或取消选中第 6 个复选框。 如果两个或更多复选框中的任何一个被选中为真,那么第 6 个应该为真,如果不是则为假。 我尝试了不同的 if 语句,但没有成功。 到目前为止我发现的最好的就是这个逻辑
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
if (checkBox2.Checked == true || checkBox3.Checked == true || checkBox4.Checked == true || checkBox5.Checked == true)
{
checkBox6.Checked = true;
}
else
{
checkBox6.Checked = false;
}
}
else
{
if ((checkBox2.Checked == true || checkBox3.Checked == true) || (checkBox4.Checked == true || checkBox5.Checked == true))
{
checkBox6.Checked = true;
}
else
{
checkBox6.Checked = false;
}
}
}
当我只有 1 个复选框被选中时,此逻辑不起作用。在那种情况下,第六个应该是假的,但不是。 有什么建议?? 我在选中事件下的所有复选框都有此代码。
【问题讨论】:
-
你可能用过||当你应该有&&。尝试更改此设置,看看会发生什么。
-
这仅适用于 checkbox1 的 CheckChanged 事件,因此除非您在所有其他复选框 CheckChanged 事件中具有相同的代码,否则它将仅适用于第一个复选框。
-
@jason.kaisersmith 我试过但没有成功。
标签: c# if-statement logical-operators