C# C如何使用按键事件?

C# C如何使用按键事件?,c#,.net,winforms,C#,.net,Winforms,这个if语句从来都不是真的 KeyDown的e.KeyCode==Keys.A它可以工作。您需要将表单的KeyPreview属性设置为true this.KeyPreview=true 更新:我相信这会对你有用 窗体将在具有焦点的控件处理所有键事件之前处理它们,并通过将KeyEventArg.Handled属性设置为false确保将处理传递给具有焦点的控件。试试这个: private void This_KeyPress(object sender, KeyPressEventArgs e){

这个if语句从来都不是真的 KeyDown的e.KeyCode==Keys.A它可以工作。

您需要将表单的KeyPreview属性设置为true

this.KeyPreview=true

更新:我相信这会对你有用

窗体将在具有焦点的控件处理所有键事件之前处理它们,并通过将KeyEventArg.Handled属性设置为false确保将处理传递给具有焦点的控件。试试这个:

private void This_KeyPress(object sender, KeyPressEventArgs e){
    if(e.KeyChar == (char)Keys.A){
        player.RightM = false;
        player.LeftM = true;
    }
}
如果没有再次工作,请输入表单的初始化代码。我希望能有所帮助:

除非表单名恰好是“This”,否则它也会是Form1\u KeyPress。我像这样包括它。KeyPress+=new KeyPress event handler This\u KeyPress;但它仍然只会让我听起来像是打气什么的
private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        System.Diagnostics.Debug.Write(e.KeyCode);
        e.Handled = false;
    }