复选框上的条件

时间:2016-06-13 13:38:06

标签: c#

我的问题很简单,但我找不到任何办法。

我有几个复选框,我想只在选中 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事件。

1 个答案:

答案 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)
{
    // ....
}