zoukankan      html  css  js  c++  java
  • C# Event.ClickCount 解决垃圾鼠标带来的烦恼

      今天调试遇到个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刷新方法进行立即刷新,在执行完逻辑后再修改回来,代码先欠着~~

    见如下

     
  • 相关阅读:
    iframe,modaldialog父子窗口相互通信的问题
    bootstrap基础知识
    基于原生js的图片延迟加载
    通过原生js的ajax或jquery的ajax获取服务器的时间
    转 fiddler教程
    正则表达式
    es6 对象
    ES6
    axios
    javascript闭包和闭包的几种写法和用法
  • 原文地址:https://www.cnblogs.com/Khan-Sadas/p/10039569.html
Copyright © 2011-2022 走看看