当用户在文本框中按Enter键时,如何不关闭表单

Uwe*_*eim 4 c# textbox devexpress winforms

在WinForms表单中有一个TextBox控件(DevExpressTextEdit准确),如果焦点在文本框内,我希望在用户按下回车键时关闭表单.

我想

filterTextBox.KeyDown += 
    (sender, e) => 
        e.Handled = e.KeyCode == Keys.Return || e.KeyCode == Keys.Enter;
Run Code Online (Sandbox Code Playgroud)

这将是足够的,但它似乎被忽略,形式仍然关闭.

我的问题是:

如何故意忽略单行文本框控件内输入以使表单保持打开状态?

Botz3000的解决方案对我有用:

filterTextBox.PreviewKeyDown += 
    (sender, e) => 
        e.IsInputKey = e.KeyCode == Keys.Return || e.KeyCode == Keys.Enter;
filterTextBox.KeyDown += 
    (sender, e) => 
        e.Handled = e.KeyCode == Keys.Return || e.KeyCode == Keys.Enter;
Run Code Online (Sandbox Code Playgroud)

Bot*_*000 6

更新:尝试处理PreviewKeyDown事件.MSDN文档在备注部分很好地解释了它.通过设置IsInputKey为true,您可以覆盖默认行为,以便TextBox可以处理密钥.您需要执行此操作PreviewKeyDown,然后按照您的操作处理密钥KeyDown.

编辑:不工作:以前建议的EnterMoveNextControl财产