如何解决WPF中button按钮同时点击多次触发click的问题
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,小编给大家分享一下如何解决WPF中button按钮同时点击多次触发click的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一
千家信息网最后更新 2025年11月07日如何解决WPF中button按钮同时点击多次触发click的问题
小编给大家分享一下如何解决WPF中button按钮同时点击多次触发click的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
解决WPF中button按钮同时点击多次触发click的方法,具体内容如下
DateTime lastClick = DateTime.Now; object obj = new object(); int i = 0; private void Button_Click(object sender, RoutedEventArgs e) { this.IsEnabled = false; var t = (DateTime.Now - lastClick).TotalMilliseconds; i++; lastClick = DateTime.Now; System.Diagnostics.Debug.Print(t + "," + i + ";" + DateTime.Now); Thread.Sleep(2000); this.IsEnabled = true; }以上代码并没法解决用户点击两次按钮触发两次的问题,因为ui线程是单线程的,所以这个这样会导致用户连续点击两次,会两秒后又调用Button_Click一次,输出如下:
1207.069,1;2017年4月19日 13:58:22
2055.1176,2;2017年4月19日 13:58:24
所以要在this.IsEnabled = false;后面强制界面刷新,代码如下:
private void Button_Click(object sender, RoutedEventArgs e) { this.IsEnabled = false; DispatcherHelper.DoEvents(); var t = (DateTime.Now - lastClick).TotalMilliseconds; i++; lastClick = DateTime.Now; System.Diagnostics.Debug.Print(t + "," + i + ";" + DateTime.Now); Thread.Sleep(2000); this.IsEnabled = true; } public static class DispatcherHelper { [SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)] public static void DoEvents() { DispatcherFrame frame = new DispatcherFrame(); Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new DispatcherOperationCallback(ExitFrames), frame); try { Dispatcher.PushFrame(frame); } catch (InvalidOperationException) { } } private static object ExitFrames(object frame) { ((DispatcherFrame)frame).Continue = false; return null; } }DispatcherHelper.DoEvents();这个方法会强制界面刷新,问题就解决了。
以上是"如何解决WPF中button按钮同时点击多次触发click的问题"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
按钮
问题
同时
内容
篇文章
代码
方法
用户
界面
线程
强制
不怎么
大部分
更多
知识
行业
资讯
资讯频道
频道
参考
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全宣传小报简易
网络安全勘察设备和侦测设备
湖南专业软件开发服务参考价格
交警收看网络安全宣传直播
网络安全小学知识竞赛
ict奥秘揭晓之网络技术论文
盐城移动网络技术专家
数据库应满足哪些条件
先导智能软件开发工程师
垃圾分类软件开发预期
服务云分布式数据库
互联网科技的税收是多少钱
开通钉钉云服务器多少钱
sql查询一条数据库
女生网络安全与执法
计算机软件开发纠纷的级别管辖
网络技术概述
儿科数据库系统结构是什么组成
毕节市网络技术招聘
网易服务器哪个比较好
网络技术CIDR
林国鑫网络安全
苏州聚聘网络技术有限公司
生物标本数据库
中心小学生网络安全宣传
ff14 花环数据库
莱山软件开发
乌海软件开发及云平台
营改增后的软件开发税收
湖南党建设计软件开发公司