首页 新闻 会员 周边

扑克牌游戏--连续点击button时,按钮只接受一次点击

0
悬赏园豆:30 [已关闭问题] 关闭于 2008-04-09 11:46
<P>&nbsp;</P> <P>&nbsp;&nbsp;&nbsp; 我做的一个扑克牌游戏,点"不出牌"按钮时,代表这一次我不出牌,三个电脑玩家出牌。当我连续点"不出"按钮时,程序便会让我不出牌好几次。怎样能点很次"不出"按钮时,按钮只接受一次点击.或是点击一次按钮后,按钮不可用.<BR><BR><B>问题补充:</B>我已经试过好几种方法了,让按钮的可用性为false;<BR>让按钮的Click事件不管用.但一轮出牌过后,依然要让<BR>不出按钮管用.一管用,问题就又出来了.<BR></P>
问题补充: 把button 按钮Enabled设置为false后,当轮到自己出牌时,还得把button按钮Enabled设为true(在"不出"Click事件中或"出牌"Click事件中).只要在Click事件执行结束之前,把button按钮Enabled设为true,问题就出现了. 三个电脑玩家的出牌函数在人脑玩家的"不出"或"出牌"按钮中调用.
王和平的主页 王和平 | 初学一级 | 园豆:2
提问于:2008-04-02 14:30
< >
分享
所有回答(3)
0
也就是说,一个按钮接受了多次点击事件,但是如果这样写代码的话: private void button1_Click(object sender, EventArgs e) { this.button1.Enabled = false; Form2 f = new Form2(); Thread.Sleep(3000); f.Show(); this.button1.Enabled = true; } 当按钮还是不可用状态的时候,你点击了该按钮,它也会接受这个事件.点击几次,它接受几次.
侯垒 | 园豆:3435 (老鸟四级) | 2008-04-02 15:03
0
不用设置按钮可用性为false,而在按钮处理事件中加个判断,如果当前出牌的不应该是自己,直接忽略掉,不执行任何代码,比如在一开始就if(出牌家!=自己){return;} 其实更好的,应该是只有轮到自己出牌时才显示操作按钮如“出牌”“不出”等,其他家出牌时,所有操作按钮都不显示 另外你的补充也奇怪,点了按钮后把按钮设置为false,如果又轮到自己就再设置true,点了之后又false,那你说的“问题就又出来了”是什么问题?
丁学 | 园豆:18730 (专家六级) | 2008-04-03 09:32
0
逻辑设计可能有点问题吧 把代码拿出来看看 换一个想法, 把不出牌 变成 出一张 空牌 (特殊值) 然后在逻辑部分对此处理 或者,你使用开关 在轮到用户出牌的时候,设置 用户操作 标记 False 用户操作了,(任何可能的响应) 将标记改成true 程序检查完,并执行后,将标记复位成False 游戏中的开关很多, 我很久以前看过一代码里面, 建立了一堆数组来保存用户的按键状态。
G yc {Son of VB.NET} | 园豆:2006 (老鸟四级) | 2008-04-03 15:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册