如何验证是否至少选择了5个组合框中的2个c#

时间:2017-10-18 18:33:02

标签: c# winforms combobox

我的表单上有5个组合框,我想通过检查用户是否从这5个组合框中选择了至少2个来验证表单。如何在c#代码中编写这个条件?

我在谷歌和不同的网站上搜索过很多但他们都在谈论在一个组合框中选择多个值或者不是我要求的东西。

有人可以在这里说些什么吗?感谢您的帮助。感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用条件表达式计算所选组合框的数量。

此表达式

int oneIfSelected = comboBox1.Selectedindex != -1 ? 1 : 0;
如果1选择了某个项目,则

将为comboBox1;否则它将为零。

现在您可以构建一个像这样的已检查计数表达式:

int totalSelected = (comboBox1.Selectedindex != -1 ? 1 : 0)
                  + (comboBox2.Selectedindex != -1 ? 1 : 0)
                  + (comboBox3.Selectedindex != -1 ? 1 : 0)
                  + (comboBox4.Selectedindex != -1 ? 1 : 0)
                  + (comboBox5.Selectedindex != -1 ? 1 : 0);

如果五个组合框中至少有两个选择了值,totalSelected至少为2.所以你可以像下面那样进行检查:

if(totalSelected >= 2)
{
 //Your code here
}

答案 1 :(得分:0)

您可以为所有组合框的SelectedValueChanged事件订阅一个方法,然后更新有关该组合的信息,例如:

Dictionary<ComboBox, int> combosInfo = new Dictionary<ComboBox, int>();

public void combo_SelectedValueChanged(object sender, EventArgs e) {
    ComboBox c = sender as ComboBox;
    if (c != null) {
        combosInfo[c] = 1;
    }
}

然后,在您要检查其中有多少人选择了值的位置,您可以这样做:

int count = combosInfo.Values.Sum();

请记住包含语句using System.Linq以查找扩展方法Sum。希望它有所帮助。