2017-10-18 79 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

相關問題