c#里面如何编写在一定条件下使窗体对鼠标单击失去响应或者恢复响应的代码?
我在编写一个五子棋程序,棋盘和棋子是直接画在窗体Form里的,落子依靠Form_Click事件实现我希望在判断输赢后棋盘上不能落子,也就是使窗体失去对Form_Click...
我在编写一个五子棋程序,棋盘和棋子是直接画在窗体Form里的,落子依靠Form_Click事件实现
我希望在判断输赢后棋盘上不能落子,也就是使窗体失去对Form_Click事件的响应
我还希望点击“再来一局”按钮后,窗体恢复对Click的响应
我已经尝试了 this.Click -= Form1_Click_1,的确可以使窗体失去响应,但对应的使窗体恢复响应的代码
this.Click +=Form1_Click_1 却有问题,我的鼠标一旦移动地快点就会练下两个子……
请问还有什么其他比较好的比较简单的使窗体失去、恢复鼠标单击响应的方法? 展开
我希望在判断输赢后棋盘上不能落子,也就是使窗体失去对Form_Click事件的响应
我还希望点击“再来一局”按钮后,窗体恢复对Click的响应
我已经尝试了 this.Click -= Form1_Click_1,的确可以使窗体失去响应,但对应的使窗体恢复响应的代码
this.Click +=Form1_Click_1 却有问题,我的鼠标一旦移动地快点就会练下两个子……
请问还有什么其他比较好的比较简单的使窗体失去、恢复鼠标单击响应的方法? 展开
展开全部
private bool GameOver;
protected override void WndProc(ref Message m)
{
const int WM_LBUTTONDOWN = 0x0201;//WINDOWS消息鼠标左键按下
if(m.Msg==WM_LBUTTONDOWN)//这里拦截它
{
if(GameOver==true)//判断如果结束
return;//直接跳出去,也就是鼠标按下的消息将当次不在向下传递
}
base.WndProc(ref m);
}
你可以重载窗体的消息处理,也就是WndProc,也可以在OnMouseDown中判断也可以,都一样的
主要就是会让你的Form_Click失去事件响应
希望对你有帮助。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可设一全局变量,用来判断这局是否结束,每次单击时在Form_Click事件做判断,要是没结束接着执行落子事件,要是这局结束,就不执行落子事件。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int isReponse=0;如果要让他失去响应,isReponse=1;如果要回覆就isReponse=0;然後在form的click事件中写判断,如果isReponse=1;则return;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你能不能直接在事件方法里判断是不是结束啊,if(结束) return;
逻辑很简单啊,不用搞那么高端的。
逻辑很简单啊,不用搞那么高端的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询