我的问题很简单,但我找不到任何方法。
我有几个复选框,只有当 2 个或更多复选框被选中时我才想运行 void
private void Button1_Click(object sender, EventArgs e)
{
if (!checkbox1.Checked && !checkbox2.Checked && !checkbox3.Checked && !checkbox4.Checked && !checkbox5.Checked)
{
Messagebox.Show("Select 2 checkbox");
return;
}
else
{
//some action
}
}
是我用来确保选中一个复选框的技巧。但我想对 2 个及更多复选框执行相同的操作。
Ps: 我不能使用 private void checkBox2_CheckedChanged()
,我需要使用我的 button1 事件。
最佳答案
您确实可以像那样计算选中复选框的数量:
int count = 0;
if (checkbox1.Checked) count += 1;
if (checkbox2.Checked) count += 1;
if (checkbox3.Checked) count += 1;
if (checkbox4.Checked) count += 1;
if (count < 2)
{
Messagebox.Show("Select 2 checkbox");
return;
}
或者您可以将所有相关的复选框放在一个数组中并执行此操作。
CheckBox[] checkboxes = new [] { checkbox1, checkbox2, checkbox3, checkbox4 };
if (checkboxes.Count(cb => cb.Checked) < 2)
{
Messagebox.Show("Select 2 checkbox");
return;
}
第二个版本很容易扩展为更多的复选框,只需将它们添加到数组即可。
如果表单上的所有复选框都算在内,您可以使用
if(Controls.OfType<CheckBox>().Count(cb => cb.Checked) < 2)
{
// ....
}
关于c# - 复选框条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37791275/