如图所示,本来只做了了个左边的游戏,用上下左右键控制那个黑色dart vader方向,然后Q键darth vader发子弹。
然后我在右边加了个panel,上面加了个播放器和播放列表。在运行程序,上下左右键和Q键全部不管用了倒是右边的播放器能用。然后我把右边这些都删了,在运行,那几个键又都可以了。。
键盘我是用e.keycode...key.up,key.down...这些控制的谁知道这是怎么冲突的啊?是不是需要在property里面设置一下啊谢谢非常感谢!!!!!THANK YOU SO MUCH

解决方案 »

  1.   

    首先设置窗体的KeyPreview属性为true,当键事件传递给具有焦点的控件前窗体接收该事件
    设置上面的属性之后除了方向键其他键窗体都可以接收了,但是发现方向键还是接收不到,方向键的消息被系统处理了(处理控件移动焦点),重写ProcessDialogKey即可(不过这样就不可以用方向键改变控件的焦点了)protected override bool ProcessDialogKey(Keys keyData)
    {  if (keyData == Keys.Up ||
          keyData == Keys.Down ||
          keyData == Keys.Left ||
          keyData == Keys.Right)
          {
                    return false;
          }
          else
          {
             return base.ProcessDialogKey(keyData);
          }
    }