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 @   龙骑科技  阅读(276)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
历史上的今天:
2018-06-26 webRTC视频通话,https协议,录制端和播放端
点击右上角即可分享
微信分享提示