捕获Windows窗体上的Enter键按下无法正常工作

时间:2018-09-13 03:30:37

标签: c# .net winforms keypress

我有一个带有用户名和密码文本框的用户身份验证表单。有一个okay按钮,它会触发代码以验证凭据。 我希望当用户在窗体上的任何地方按下Enter键时都执行相同的代码。 所以我注册了这样的按键事件

 this.KeyPress += UserLogin_KeyPress;
 private void UserLogin_KeyPress(object sender, KeyPressEventArgs e)
        {
             if (e.KeyChar == (char)13)
                {
                MessageBox.Show("enter");
                }

        }

此事件根本没有触发。我在做什么错?

3 个答案:

答案 0 :(得分:1)

由于KeyPress不支持e.Keycode,请尝试将属性keypreview设置为true,然后更改为keydown,

private void UserLogin_KeyPress(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Enter)
        {
            MessageBox.Show("Enter");
        }
    }

答案 1 :(得分:0)

尝试一下:

private void UserLogin_KeyPress(object sender, KeyPressEventArgs e)
{
   if (e.KeyCode == Keys.Enter)
   {
      MessageBox.Show("enter");
   }
}

答案 2 :(得分:0)

仅查看表单。表单上的控件也需要连接。