在C#中,我试图查看用户是否按下右键以便玩家向右移动,但是当我尝试它时,它没有注册按键:
private void KeyPressed(object sender, KeyPressEventArgs e)
{
if(e.KeyChar == Convert.ToChar(Keys.Right))
{
MessageBox.Show("Right Key");
}
}
它不显示MessageBox
这对左/上/下都不起作用
但是,如果我用
替换它if(e.KeyChar == Convert.ToChar(Keys.Space))
有效。
我做错了吗?
答案 0 :(得分: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
。
答案 1 :(得分:2)
箭头键位于keyUp事件中:
Keys.Up,Keys.Down,Keys.Left,Keys.right
它们不是由KeyPressEventArgs触发的。