【问题标题】:select multiple values in combo box having dropdown without using checkbox在具有下拉列表的组合框中选择多个值而不使用复选框
【发布时间】:2015-07-15 11:13:46
【问题描述】:

你能帮我做这件事吗? 如何在具有下拉样式的组合框中选择多个值作为Windows窗体中的下拉列表?

【问题讨论】:

标签: c# winforms


【解决方案1】:

您可以使用 CheckBox 填充您的 ComboBox 项目,然后在代码中执行一些操作,如下例所示,将 SelectedIndex 保持在 -1,使其成为一个下拉列表并提高用户的一致性。一旦关闭下拉菜单或当用户在选择首选项后与任何其他元素交互时,它也会检查勾选了什么。

这假设您已将 ComboBox 命名为“cbList”,并且您已经用三个 CheckBox 名称“一”、“二”和“三”填充了它。

private void cbList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    cbList.SelectedIndex = -1;
}

private void cbList_DropDownClosed(object sender, EventArgs e)
{
    foreach(CheckBox chk in cbList.Items){
        if(chk.IsChecked.HasValue && chk.IsChecked.Value){
            switch (chk.Content.ToString()) { 
                case "one":
                    // Do something
                    break;
                case "two":
                    // Do something
                    break;
                case "three":
                    // Do something
                    break;
            }
        }
    }
}

您还可以将第一个元素设置为 ComboBoxItem,并带有文本“请选择所有适用的..”或其他内容,并将 SelectedIndex 始终设置为 0。

希望这会有所帮助。

【讨论】:

  • 我不想使用复选框,您能否建议我一些答案以在下拉列表中的值中选择多个值并将其附加到组合框中? @sp10acnFIFO
  • @UserAR 您可以做一些事情,例如在选择或取消选择每个项目时更改内容的背景颜色,然后检查每个项目背景颜色的十六进制值以执行您想要的逻辑.但是,每次您选择一个项目以突出显示它时,下拉菜单都会关闭。如果您能找到阻止 ComboBox 关闭的方法,这可能是您最好的选择。如果不是我能提供的就是使用上面的方法或使用 ListBox。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多