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前清空消息队列)。

 

参考链接:https://blog.csdn.net/huabingliang/article/details/103621245?ops_request_misc=&request_id=&biz_id=102&utm_term=WinForm%E4%B8%AD%E8%AE%BE%E7%BD%AEEnabled=False%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%98%E4%BC%9A%E5%93%8D%E5%BA%94&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-2-103621245.142^v100^pc_search_result_base8&spm=1018.2226.3001.4187

posted @ 2024-06-26 17:59  龙骑科技  阅读(202)  评论(0编辑  收藏  举报