做了个简单的小游戏和一个简单的播放器,但是按键冲突,怎么解决啊。谢谢。。内附截图
如图所示,本来只做了了个左边的游戏,用上下左右键控制那个黑色dart vader方向,然后Q键darth vader发子弹。
然后我在右边加了个panel,上面加了个播放器和播放列表。在运行程序,上下左右键和Q键全部不管用了。。。倒是右边的播放器能用。然后我把右边这些都删了,在运行,那几个键又都可以了。。
键盘我是用e.keycode...key.up,key.down...这些控制的。。。
谁知道这是怎么冲突的啊?是不是需要在property里面设置一下啊。。。谢谢。。。非常感谢!!!!!
THANK YOU SO MUCH
------解决方案--------------------首先设置窗体的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);
}
}