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

    见如下

     
  • 相关阅读:
    01 变量、基本数据类型
    02 gitlab的基本使用
    kubernetes
    02 redis高可用集群
    Redis & ELK
    01 Redis安装、配置详解、数据备份与恢复
    Jenkins
    01 git gitlab jenkins的安装
    golang mysql 客户端
    接口类
  • 原文地址:https://www.cnblogs.com/Khan-Sadas/p/10039569.html
Copyright © 2011-2022 走看看