如何为文本框捕获按键事件

本文关键字:事件 文本 | 更新日期: 2023-09-27 18:29:25

我有一个winform应用程序,它有两个文本框和一个按钮。如果控制焦点在任何文本框上,并且用户单击键盘"输入"按钮。按钮事件应该调用。

问题是我找不到TextBox_KeyDown来捕捉"Enter"键按下。在Visual Studio编辑器中,KeyDown、KeyPress和Keyup属性为空。

如何为文本框捕获按键事件

有几件事。在我看来,您只需要将Form上的AcceptButton设置为用户按下Enter时要单击的按钮。它将自动为您处理。

其次,如果不是这样,则需要在Form上将KeyPreview设置为true,并在Form:上处理ProcessCmdKey方法

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    if (keyData == Keys.Enter)
    {
        // do something
    }
    else
    {
        base.ProcessCmdKey(ref msg, keyData);
    }
}

你可以这样做吗?

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