做一个坦克在界面上跑,方向键控制方向,用keyup能行,但为什么用kesspress不能控制?

解决方案 »

  1.   

    private void YourControl_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
            {
                if (e.KeyData == Keys.Left)
                {
                    e.IsInputKey = true;
                }
            }
      

  2.   

    keypress按下特殊按钮的时候不会引发事件
      

  3.   

    MSDN 的:Control.KeyPress 事件 在控件有焦点的情况下按下键时发生。 键事件按下列顺序发生: 
    KeyDown 
    KeyPress 
    KeyUp 非字符键不会引发 KeyPress 事件;但非字符键却可以引发 KeyDown 和 KeyUp 事件。 使用 KeyChar 属性在运行时对键击进行取样,并且使用或修改公共键击的子集。 若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs.Handled 属性设置为 true。
      

  4.   

    Control.KeyPress 事件 在控件有焦点的情况下按下键时发生。 键事件按下列顺序发生: 
    KeyDown 
    KeyPress 
    KeyUp 非字符键不会引发 KeyPress 事件;但非字符键却可以引发 KeyDown 和 KeyUp 事件。 使用 KeyChar 属性在运行时对键击进行取样,并且使用或修改公共键击的子集。 若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs.Handled 属性设置为 true。