繁体   English   中英

Winforms中的简单组合框-触发两次(使用鼠标展开组合框并使用键盘选择一个项目)

[英]Simple Combobox in Winforms - Firing twice (Use mouse to expand combobox and select a item using keyboard)

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

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!");
        };
    }
}

我什至将事件处理程序更改为以下代码。 (基于链接的问题。仍然是相同的问题)

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

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

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

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

有什么想法吗?

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

因此,我设法解决了这个问题。

这是如何做:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM