今天调试遇到个Bug,百思不得其解的是在自己的设备上重来不重现,在测试机上百分百重现,如下:

问题:点击一次Button执行两次Click操作

分析:看Log的确是执行了两次,就像真的点击了两次Button一样

原因:经过N多测试终于发现-不要不把测试机当机看啊,测试机也需要个好鼠标啊!!!!它的鼠标有问题,人手动点击一次就会不自觉的出发两次,这样就尴尬了

解决方案:

1.Event.ClickCount管控

  private void Button_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ClickCount >= 2)
{
return;
}
bt01.Content += e.ClickCount.ToString()+" ";
}

  ClickCount识别MouseDown次数,可根据该属性进行逻辑控制

PS:上述经测试可行,手贱又试了下PreviewMouseDoubleClick看看什么效果

  private void Bt01_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (e.ClickCount >= 2)
{
return;
}
bt01.Content += e.ClickCount.ToString() + " ";
}

  竟然也会输出出来,这意味着在DoubleClick时候ClickCount的值=1,有点奇怪,Mark下

解决方案2:页面控制即时刷新

  在MouseDown后首先对Button.Enable属性进行设置为False,然后调用WPF刷新方法进行立即刷新,在执行完逻辑后再修改回来,代码先欠着~~

见如下

 

C# Event.ClickCount 解决垃圾鼠标带来的烦恼的更多相关文章

  1. 解决float浮动带来的父元素高度没有的问题---清除浮动

    float的特性 : 1:使元素block块级化: 2:破坏性造成的紧密排列特性. 基于以上的特性,使得我们通常把浮动用来布局,带来的问题是,容易出问题,重用性不行,ie6-的版本下很多问题,因为它是 ...

  2. 浏览器兼容问题----Firefox不兼容event的解决方法

    一.event.srcElement:当前事件的源: 在IE下,event对象有srcElement属性,但是没有target属性;Firefox下,event对象有target属性,但是没有srcE ...

  3. event.preventDefault() 解决按钮多次点击 导致页面变大

    event.preventDefault() 解决按钮多次点击 导致页面变大

  4. C++引用计数设计与分析(解决垃圾回收问题)

    1.引言 上一篇博文讲到https://www.cnblogs.com/zhaoyixiang/p/12116203.html 我们了解到我们在浅拷贝时对带指针的对象进行拷贝会出现内存泄漏,那C++是 ...

  5. VC++ 解决在鼠标移动时,光标闪烁的问题。其实本质是 ON_SETCURSOR的用法

    在调用Windows API函数SetCursor设置光标时,可能会碰到闪烁的问题:移动鼠标,光标在Class Cursor(即注册窗口类时指定的Cursor)与预设Cursor之间闪烁. 在MSDN ...

  6. host缓存,浏览器缓存---解决host缓存带来的伤

    1.缓存 缓存,对应工程师来讲简直太熟悉了,太方便了,省略到资源或数据的获取方式,直接缓存到离用户访问最快的地方,也降低服务器的压力,比如: (1)静态文件获取 服务器->cdn->本地磁 ...

  7. 解决树莓派鼠标延迟/迟滞问题-转CSDN博主“Deiki”-sunziren

    本文转自CSDN: https://blog.csdn.net/deiki/article/details/73252942,因为我在为树莓派安装2.4G无线键鼠的时候,鼠标反应很慢,卡顿严重(换成有 ...

  8. vue cavnas绘制矩形,并解决由clearRec带来的闪屏问题

    起因:在cavnas绘制矩形时 鼠标移动一直在监测中,所以鼠标移动的轨迹会留下一个个的矩形框, 要想清除矩形框官方给出了ctx.clearRect() 但是这样是把整个画布给清空了,因此需要不断 向画 ...

  9. event兼容性解决

    event出现undefind错误 解决方法: $('#normalImgDiv').mousemove(function (e) { var e = window.event || e; var p ...

随机推荐

  1. VS2015编译ffmpeg的问题解决

    刚装了vs2015,打开一些ffmpeg项目,发现不能编译通过,包括stdio.h都无法找到,可能是vs2015的bug吧. 现在记录一下解决方法: 我的目录是这样定义的: C:\Program Fi ...

  2. Requests库 更新中

    1.获取网页内容 --- requests库 <需理解HTTP协议> >requests库的7个主要方法   方法 说明 requests.requests() 构造一个请求,支撑一 ...

  3. CAD实现自定义实体夹点移动(com接口VB语言)

    主要用到函数说明: MxDrawXCustomEvent::MxDrawXCustomEntity::moveGripPointsAt 自定义实体事件,自定义实体夹点被移动,详细说明如下: 参数 说明 ...

  4. Async/await语法糖实现(Generator)

    // generator也是一种迭代器(Iterator) 有next方法,并返回一个对象{value:...,done:...} function run(generatorFunction) { ...

  5. 跟着alex学习了格式化输出,最大的感受就是编程这个事,一定要自己动手去做,才能学会。看会和自己会做完全是两码事

    学习了三天,现在学到格式化输出.看视频教程,alex和那个美女学员打情骂俏,真是羡慕啊. 教程看懂很容易,完全会了. 可是上手编程马上歇菜. 就这么几行的代码,我遇到了n多错误 首先是中文输入的错误, ...

  6. Heaters (codeforces 1066B)

    贪心题 策略 在最左边设置一个array 0,每一次从右往左,如果有heater的话就寻找heater左边界是不是小于等于目前的上一个heater的右边界,如果没有一个这样的,那么就直接输出-1 代码 ...

  7. gitlab的添加密钥

    1.在本地电脑下载git的客户端并且安装 2.鼠标右键左面选中Git Bash Here 3.操作如下图生成密钥 4.将密钥复制过来添加到gitLab中 5.Eclipse配置密钥 6.在git创建的 ...

  8. android 彩信附件添加删除

    http://blog.csdn.net/yuzhu_guan2012/article/details/6679154

  9. oi的小转折

    2018.6.4,衡水中学oier——Yu-shi,真正的走入了外网领域. 从最开始的连scanf都不打取地址,到现在懂了好多以前不敢去看的东西,心态逐渐的成长了.也许有过特别迷茫的时候,也许将来会有 ...

  10. BZOJ 1444 [JSOI2009]有趣的游戏 (AC自动机、概率与期望DP、矩阵乘法)

    诶这题洛谷居然没有??? 题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1444 题解: 我见到主要有三种做法. 一是矩阵乘法.设\(d ...