2011-01-20 89 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

更简单更好。

  • 弄清楚用户只是没(选中“全部”或签别的东西)
  • 如果用户选中“全部”
    • 对于每一个其他项目,取消它
  • 如果用户签别的
    • 取消选中 “全部”

用户取消选中某个项目时忽略。

不要试图将这些集成到一个循环语句中,它只会让这种混淆。