我的问题很简单,但我找不到任何办法。
我有几个复选框,我想只在选中 2 或更多
时才能运行我的空白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事件。
答案 0 :(得分:6)
您确实可以计算已选中复选框的数量:
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)
{
// ....
}