C# winform button事件问题

daiyong_88 2010-12-10 12:33:56
需求:
现在有一个button按钮,点击按钮执行一段代码,
要求是当我这段代码未执行完成后,再次点击button时,不进行再次执行。
只有在代码执行完成时点击button按钮,才执行这段代码,
我现在在事件里将button禁用,点击确实是没有效果,但是系统会纪录点击过程,
当我的这段代码执行完成后,又会继续响应点击事件。
 说到底都是,当我的这段代码没有执行玩,点击button是无效的,只有执行完成后,点击button才有效
...全文
105 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
daiyong_88 2010-12-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 jayjiang0910 的回复:]

引用 1 楼 watermm 的回复:
C# code
button.click()
{
button.Enabled=false

....

button.Enabled=true

}



这个应该可以满足楼主的意思,单击button后将其Enabled属性设置为false,当执行完代码后将其Enabled属性设置为true,即可。
[/Quote]
这个不行的,你在button事件里用for循环延时看看,当button禁用的时候你也点击几次看看,看到button恢复时,还会不会执行你禁用时点击的button事件。
daiyong_88 2010-12-10
  • 打赏
  • 举报
回复
1楼,2楼的我都试过,没有用,不管是定义变量还是禁用button,button都会纪录点击消息给系统,3楼的可行。谢了!
daiyong_88 2010-12-10
  • 打赏
  • 举报
回复
1楼,2楼的我都试过,没有用,不管是定义变量还是禁用button,button都会纪录点击消息给系统,3楼的可行。谢了!
灬嘻嘻哈哈灬 2010-12-10
  • 打赏
  • 举报
回复
        Thread t;
private void button1_Click(object sender, EventArgs e)
{
if ((t == null) || (t.ThreadState != ThreadState.Running))
{
MessageBox.Show("Begin..");
t = new Thread(new ThreadStart(Method));
t.Start();
}
}
public void Method()
{
for (int i = 0; i < 1000000000; i++)
{
}
MessageBox.Show("Over..");
}
m00ners 2010-12-10
  • 打赏
  • 举报
回复
定义一个bool变量值为false。
在你的那段代码末尾置为true。代
码开始的时候判断这个变量。
水妹妹 2010-12-10
  • 打赏
  • 举报
回复
button.click()
{
button.Enabled=false

....

button.Enabled=true

}
jayjiang0910 2010-12-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 watermm 的回复:]
C# code
button.click()
{
button.Enabled=false

....

button.Enabled=true

}
[/Quote]


这个应该可以满足楼主的意思,单击button后将其Enabled属性设置为false,当执行完代码后将其Enabled属性设置为true,即可。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧