这个问题是关于俄罗斯方块的。。
在form中 放置2个按键 1个退出 1个开始
都添加click事件·
在form中还有放置的panel 这个是 游戏区域 用上下左右控制的
这3个同时放的时候 我按开始键 游戏开始
再按 方向键控制游戏方块移动的时候 就出问题了
他只在退出按键上徘徊!!!
也就是说方向键不控制方块 了
这个事怎么回事难道button跟panel有先后顺序
在form中 放置2个按键 1个退出 1个开始
都添加click事件·
在form中还有放置的panel 这个是 游戏区域 用上下左右控制的
这3个同时放的时候 我按开始键 游戏开始
再按 方向键控制游戏方块移动的时候 就出问题了
他只在退出按键上徘徊!!!
也就是说方向键不控制方块 了
这个事怎么回事难道button跟panel有先后顺序
解决方案 »
- 大侠们,C#里我想通过单击Button把已隐藏label内容显示出来
- c# 打印
- 如何访问SQL Server2000数据库 基于WINFORM的 请高手指教
- 有谁知道好的C#源码下载的网站?
- 关于dataset中数据显示在页面的table中的问题
- 怎么在installshield中判断是否装了.net1.1版本
- 有关异步读文件
- 向 龙人 请教!!!
- 在.NET中Datagrid控件记录跟踪问题
- c# 正则表达验证文本格式?
- 高分求教,如何获取百度空间地址?
- Linq To Sql 中 有一个方法的参数怎么来取得?public void InsertAllOnSubmit<TSubEntity>
{
btnBegin.Enabled = false;
btnQuit.Enabled = false;
Game.Clear(); // 清除游戏区数据
NewBox(); // 产生新的方块
timer1.Start(); panel1.Invalidate();
panel2.Invalidate();
}
别都是来学习的啊。汗。。
当你点击btnBegin后焦点处于btnBegin上
所以当你用方向键移动时焦点就在同在工作区的两个btn上移动
不知对不对
按钮设置为未激活就是的了
通过KeyPress事件来触发事件
就不麻烦了
而且 Focus()方法不一定有效
那时没解决就把Button砍掉了-_-!
你可以用下10楼的方法,
同时试试让游戏区域的panel获得焦点Focus()。
只是个建议,我也学习来的...
keypress 事件添加完成 把CLICK的 注释掉 把代码弄到PRESS下
是这个意思吧但是点击了 他运行不了游戏了
还有panel.focus(); 这个也是不可以的!~~
http://download.csdn.net/source/1235590 这个是这个程序的地址 需要0分就能下 帮我看看吧。
下完 自己添加1个按钮 测试一下 这两个方法都不行
调试一下还有什么方法能解决这个问题
诚信感谢帮助的朋友 追加分数!
private void Form1_KeyDown(object sender, KeyEventArgs e);
添加如下函数
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
switch (keyData)
{
case Keys.Right:
if (objBox.OutRange(ConstData.RIGHT) && Check(ConstData.RIGHT))
{
objBox.xCurrentPos++;
panel1.Invalidate();
}
break;
case Keys.Left:
if (objBox.OutRange(ConstData.LEFT) && Check(ConstData.LEFT))
{
objBox.xCurrentPos--;
panel1.Invalidate();
}
break;
case Keys.Down:
if (objBox.OutRange(ConstData.DOWN) && Check(ConstData.DOWN))
{
objBox.yCurrentPos++;
panel1.Invalidate();
}
break;
default:
return base.ProcessCmdKey(ref msg, keyData);
}
return true;
}
在没有第二个按钮的时候没有其他的空间可以移动焦点,系统不处理,这样就轮到Form来处理了,所以程序能够正常运行。
解决方法就是 覆盖默认的系统键处理方式。如上所示,截取方向键的处理。