2011-01-20 132 views
0

我有一個自定義的組合框複選框。我從http://www.codeproject.com/KB/combobox/extending_combobox.aspx定製的組合框複選框

該下拉列表由5個項目組成,即A,B,C,D,全部。

我想要做的是當用戶選中全部,取消選中A,B,C,D。 以及當用戶選擇時,A,B,C,D中的任一個取消全選。

我想不通,我應該把這些邏輯

我已經試過這樣:

int index = ComboCheck.FindString(@"All"); 

foreach (var x in tComboCheck.CheckBoxItems.Where(y => y.Checked)) 
{ 
    if(x.Text.StartsWith("A")) 
    { 
    ComboCheck.CheckBoxItems[index].Checked = false; 
    } 
    if(x.Text == @"All") 
    { 
    x.Checked = true; 
    } 
} 

它不工作。我在Checked Changed事件下使用此代碼。請幫助

+0

多麼可怕,可怕,完全不標準,也無法使用控制。常規復選框有沒有問題,或者是帶有複選標記的ListView? – 2011-01-20 15:37:24

回答

0

更簡單更好。

  • 弄清楚用戶只是沒(選中「全部」或籤別的東西)
  • 如果用戶選中「全部」
    • 對於每一個其他項目,取消它
  • 如果用戶籤別的
    • 取消選中 「全部」

用戶取消選中某個項目時忽略。

不要試圖將這些集成到一個循環語句中,它只會讓這種混淆。