Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C Windows窗体中处理自动完成组合框中的鼠标单击_C#_.net_Winforms_Combobox_Autocomplete - Fatal编程技术网

C# 在C Windows窗体中处理自动完成组合框中的鼠标单击

C# 在C Windows窗体中处理自动完成组合框中的鼠标单击,c#,.net,winforms,combobox,autocomplete,C#,.net,Winforms,Combobox,Autocomplete,我在C Windows窗体项目中有一个ComboBox控件。我已经将控件的DropDownStyle设置为DropDown,并且还为控件配置了AutoComplete属性。这很有效 在这个控件上,我有一个要求,当我选择一个值后按Enter键时,它应该触发一个按钮单击。为此,我处理了keyDown事件,并检查了e.KeyCode==Keys.Enter是否运行良好 问题是: 当我开始键入时,控件的“自动完成”框打开,如果我从鼠标中选择其中一个,则会触发KeyDown事件,系统认为按下了Enter键

我在C Windows窗体项目中有一个ComboBox控件。我已经将控件的DropDownStyle设置为DropDown,并且还为控件配置了AutoComplete属性。这很有效

在这个控件上,我有一个要求,当我选择一个值后按Enter键时,它应该触发一个按钮单击。为此,我处理了keyDown事件,并检查了e.KeyCode==Keys.Enter是否运行良好

问题是:

当我开始键入时,控件的“自动完成”框打开,如果我从鼠标中选择其中一个,则会触发KeyDown事件,系统认为按下了Enter键

代码

行为

我从键盘输入B,点击B2,得到了警报


对可能出现的问题有什么想法吗?如果需要,很高兴与您分享更多详细信息。

我非常确定,当您使用鼠标单击时,不会引发KeyDown事件。你有点不对劲。发布一篇演示问题的文章。@SriramSakthivel添加了代码。请现在查一下,有意思。我可以重现这个问题。不知道发生了什么,很高兴你能繁殖。任何指针都会有很大帮助。在这种情况下,我试图抑制事件。这会变得很棘手。接收到WM_KeyDown消息,不确定这是预期行为;让我们看看是否有具备win32知识的人可以提供解释。
    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("hello");
    }

    private void cb_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            button1_Click(sender, e);
        }
    }