Winforms中的简单Combobox - 点击两次(使用鼠标展开组合框并使用键盘选择项目)

时间:2015-03-13 09:09:55

标签: c# .net winforms combobox

考虑一个带有简单组合框的非常基本的表单

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.comboBox1.Items.Add("test1");
        this.comboBox1.Items.Add("test2");
        this.comboBox1.Items.Add("test3");
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        this.comboBox1.SelectedIndexChanged += (o, args) => 
        {
            MessageBox.Show("Combo box changed!");
        };
    }
}

我甚至将eventhandler更改为以下代码。 (基于相关问题。仍然是同样的问题)

this.comboBox1.SelectedValueChanged += (o, args) => //or even `Textchanged` event too
            {

                MessageBox.Show("Combo box changed!");
            };

使用mouse展开下拉菜单,然后使用keyboard选择任何项目。

组合框会触发两次(消息框出现两次)

任何想法为什么?

1 个答案:

答案 0 :(得分:0)

似乎这是底层框架的错误。

所以,我设法解决了这个问题。

以下是:

  1. 拥有一个私有变量(最好),可以在组合框中存储所选项目的值
  2. 下次,将其与组合框中的当前选择进行比较。如果它们相同,那就回来。