【问题标题】:select one value of checkboxCombobox(additional)选择复选框组合框的一个值(附加)
【发布时间】:2012-01-24 11:38:54
【问题描述】:

这是select one value of checkboxCombobox的附加问题

在特定情况下,我需要一个复选框组合框,其操作类似于常规组合框。我需要一次只能选择一个值。我现在明白了。我的下一个问题是:

private void PreDefSerials_SelectedValueChanged(object sender, EventArgs e)
{
    if (PreDefSerials.SelectedIndex > -1)
    {
        // shut down the evenhandler
        PreDefSerials.SelectedValueChanged -= PreDefSerials_SelectedValueChanged;
        // get the selected items name.
        string test = PreDefSerials.SelectedItem.ToString();

        // deselect all boxes
        for (int i = 0; i < PreDefSerials.CheckBoxItems.Count; i++)
        {
            PreDefSerials.CheckBoxItems[i].CheckState = CheckState.Unchecked;
        }

        if(test != "")
            // select the selected text again
            PreDefSerials.CheckBoxItems[test].CheckState = CheckState.Checked;

        // reinstate the eventhandler
        PreDefSerials.SelectedValueChanged += PreDefSerials_SelectedValueChanged;
    }
}

我现在的问题是,当我在复选框组合框中选择第二个项目时,所选项目是 (item1, item2)。使用此名称,我无法重新检查该项目。

如何只获取复选框组合框的最近点击项?

【问题讨论】:

    标签: c# winforms combobox checkbox


    【解决方案1】:

    为什么我总是想以艰难的方式去做!为什么要尝试使用复选框组合框作为组合框?只是因为我的表格上已经有了它!

    有更好更简单的方法来解决这个问题!添加一个组合框。所以我做了。我的新解决方案是与复选框组合框位于同一位置的不可见组合框。当某个事件发生时,我的组合框将变为可见,而我的复选框组合框将变为不可见。

    comboBox1.Visible = true;
    PreDefSerials.Visible = false;
    

    当我的操作完成后,组合框将再次消失。谢谢大家和我一起思考。

    【讨论】:

      【解决方案2】:

      属性SelectedItem包含最近选择的项目,属性SelectedItems包含所有选择的项目。

      【讨论】:

      • 字符串测试 = PreDefSerials.SelectedItem.ToString();还用 (item1,item2) 填充字符串
      猜你喜欢
      • 2014-07-12
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 2012-12-26
      相关资源
      最近更新 更多