private void This_KeyPress(object sender, KeyPressEventArgs e){
if(e.KeyChar == (char)Keys.A){
player.RightM = false;
player.LeftM = true;
}
}
所以即使没有错误它也不起作用它只是什么都不做但是如果我尝试keydown它只适用于第一个键而所有其他如果(e.KeyCode == Keys ....)不会工作有你的想法?
答案 0 :(得分:2)
您需要将表单的KeyPreview
属性设置为true
。
this.KeyPreview = true;
更新:我确定这会对你有用
表单将在具有焦点的控件处理它们之前处理所有键事件,并通过将KeyEventArg.Handled
属性设置为false
来确保处理通过焦点传递给控件。试试这个:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
System.Diagnostics.Debug.Write(e.KeyCode);
e.Handled = false;
}
如果没有再次使用,请填写表单的初始化代码。我希望能提供帮助:)