【问题标题】:Custom Built Combo Box Check Box定制组合框复选框
【发布时间】:2011-01-20 23:59:15
【问题描述】:

我有一个定制的组合框复选框。我是从http://www.codeproject.com/KB/combobox/extending_combobox.aspx那里拿的

下拉列表由5个项目组成,分别是A、B、C、D、All。

我想做的是当用户选中全部时,取消选中 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 事件下使用此代码。请帮忙

【问题讨论】:

  • 多么可怕,可怕,完全不标准,无法使用控制。常规复选框是否有问题,或者可能是带有复选标记的 ListView
  • 我的应用程序没有太多空间。用户需求:(

标签: c# linq combobox checkbox


【解决方案1】:

越简单越好。

  • 弄清楚用户刚刚做了什么(选中“全部”或选中其他内容)
  • 如果用户选中“全部”
    • 对于其他项目,取消选中它
  • 如果用户检查了其他内容
    • 取消选中“全部”

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

不要试图将它们集中到一个循环语句中,那样会让人感到困惑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多