Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.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

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# Combobox onkeypress事件上的自动完成会吞噬Enter键_C#_.net_Winforms_Autocomplete_C# 2.0 - Fatal编程技术网

C# Combobox onkeypress事件上的自动完成会吞噬Enter键

C# Combobox onkeypress事件上的自动完成会吞噬Enter键,c#,.net,winforms,autocomplete,c#-2.0,C#,.net,Winforms,Autocomplete,C# 2.0,我有一个带有AutoCompleteMode=suggest的组合框,并按如下方式处理按键事件: private void searchBox_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Return) { // do stuff } } 但是,它不会捕获Enter键。它捕获了所有其他内容,因为autocomplete下拉菜单可以完美地工作 我还尝试

我有一个带有
AutoCompleteMode=suggest
的组合框,并按如下方式处理按键事件:

private void searchBox_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Return)
    {
        // do stuff
    }
}
但是,它不会捕获
Enter
键。它捕获了所有其他内容,因为autocomplete下拉菜单可以完美地工作

我还尝试了这里提供的建议:,将表单的
KeyPreview
属性设置为true,并在表单的KeyPress事件处理程序中设置断点:

private void Form_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = false;
}
但是,即使表单的处理程序也没有捕获enter键

有什么建议吗

(如果我禁用自动完成,它将捕获回车键)

在您的情况下,最好使用KeyDown事件

void SearchBox_KeyDown(object sender, KeyEventArgs e)
{
   if(e.KeyCode == Keys.Enter)
    {
        // Do stuff
    }
}

关于KeyPress事件的另一个有趣的事情是:如果组合框中没有任何项,它甚至会在启用autocompete的情况下捕获Enter键!:-)

就这样!非常感谢:)此解决方案也适用于Delphi和
OnKeyPress
vs
OnKeyDown
事件。