2017-10-18 40 views
2

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

我在谷歌和不同的网站上搜索了很多,但他们都讨论在单个组合框中选择多个值或者不是我的要求。

有人可以在这里扔光吗?感谢你的帮助。谢谢。

+1

你有没有试过的东西的代码? – dimwittedanimal

+0

我无法专门开始编写这个条件..'至少有2出5' – lucky

+0

是Windows还是ASP.NET,哪个框架? – Coding

回答

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 
} 
+0

@lucky请参阅编辑。 – dasblinkenlight

+0

太棒了!这样可行。再次感谢:) – lucky

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。希望能帮助到你。

+0

感谢您的回答,但上述答案似乎非常简单明了。 – lucky

相关问题