1

在 C# 中,我试图查看用户是否按下了右键以使玩家向右移动,但是当我尝试时,它没有注册按键:

private void KeyPressed(object sender, KeyPressEventArgs e)
{
      if(e.KeyChar == Convert.ToChar(Keys.Right))
      {
              MessageBox.Show("Right Key");
      } 
} 

它不显示消息框

这也不适用于左/上/下

但是,如果我将其替换为

if(e.KeyChar == Convert.ToChar(Keys.Space))

有用。

难道我做错了什么?

4

2 回答 2

4

您应该使用KeyDown事件,例如箭头:

private void KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
    {
    }
}

箭头键不是字符,因此KeyPressed不用于它们。

于 2013-11-06T22:49:48.757 回答
2

箭头键在 keyUp 事件中它们是:

Keys.Up、Keys.Down、Keys.Left、Keys.right

它们不是由 KeyPressEventArgs 触发的。

于 2013-11-06T22:48:53.437 回答