始终不会响应keydown事件,相关代码如下:this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown);
//////////////////
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            MessageBox.Show("测试是否响应");
            switch (e.KeyCode)
            { 
                case Keys.Right:
                    CurrentBlock.Right();                    
                    break;
                case Keys.Left:
                    CurrentBlock.Left();
                    break;
                case Keys.Up:
                    CurrentBlock.Rotate();
                    break;
                case Keys.Down:
                    CurrentBlock.Down();
                    break;
                default:                   
                    break;
            }
        }//////////////
然而,我重新建立的工程却可以正常响应,这是何原因呢?

解决方案 »

  1.   

    事件丢失吧,跟踪下看看有没有执行click事件
      

  2.   

    执行了的.
    form_load,和button_click事件都响应了的,就是不会响应keydown事件,让我摸不着头脑啊...
      

  3.   

    我发现了,为何在窗体上如果有按钮就不会响应keydown事件呢?
      

  4.   

    我算是搞明白了,因为默认情况是按钮被focus,所以我按键的时候应该只能响应按钮的keydown消息.如果没有按钮或者按钮没有被focus,将会响应窗体的keydown事件.
    问题已经解决,多谢各位捧场
      

  5.   

    keypreview属性设置为True,就可以了