C#如何使用KeyPressed事件?

时间:2017-07-23 20:52:11

标签: c# .net winforms

private void This_KeyPress(object sender, KeyPressEventArgs e){
    if(e.KeyChar == (char)Keys.A){
        player.RightM = false;
        player.LeftM = true;
    }
}

所以即使没有错误它也不起作用它只是什么都不做但是如果我尝试keydown它只适用于第一个键而所有其他如果(e.KeyCode == Keys ....)不会工作有你的想法?

1 个答案:

答案 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;
    }

如果没有再次使用,请填写表单的初始化代码。我希望能提供帮助:)