C# Winform按钮避免重复点击以及解决WinForm中设置Enabled=False为什么还会响应Click事件
1、C# Winform按钮避免重复点击 代码如下
btn.Enable=false;
//执行任务的函数或代码
btn.Enable=true;
在btn.Enable=true前添加Application.DoEvents();
就是让应用程序的消息队列自动走完(即在按钮为Ture前清空消息队列)。
2、解决WinForm中设置Enabled=False为什么还会响应Click事件
这是因为消息机制引起的问题,如果处理click事件的函数执行时间过长,那么下一次点击的消息会存入消息队列,等到当前click处理函数退出以后,再从消息队列获取此消息执行。你可以使用笔者提供的代码,多次点击button,你会看到多次的重复执行。
解决方法
在btn.Enable=true前添加Application.DoEvents();
就是让应用程序的消息队列自动走完(即在按钮为Ture前清空消息队列)。
龙腾一族至尊龙骑