none
屏蔽连续单击事件 RRS feed

  • 问题

  • 给一个PictureBox控件添加了Click事件,快速连续单击该控件时,Click事件不断被触发,但是我不想这样,请问该如何实现呢?谢谢!
    guiwenyang
    2010年6月7日 0:54

答案

  • 快速单击被识别成双击了~~

    控件的单击事件无法被触发

    一个简单的办法,你同时订阅双击和单击的事件,然后不管是单击和快速的单击(双击)都能被捕获。


    family as water
    2010年6月7日 2:07
  • 你好!

         这是个很有历史的问题了,Windows系统本就是这样设计的,你可以类比桌面上的图标,单击选中,双击打开!即使你双击,也是要先选中的!单击事件肯定要触发!

         好的设计是让单击和双击事件执行相关联的两个动作,就像上面说的!如果你一定要执行不相关的两个动作,你只能在双击事件中撤销单击事件执行的结果!


    周雪峰
    2010年6月8日 10:15
    版主

全部回复

  • 快速单击被识别成双击了~~

    控件的单击事件无法被触发

    一个简单的办法,你同时订阅双击和单击的事件,然后不管是单击和快速的单击(双击)都能被捕获。


    family as water
    2010年6月7日 2:07
  • 你好!

         这是个很有历史的问题了,Windows系统本就是这样设计的,你可以类比桌面上的图标,单击选中,双击打开!即使你双击,也是要先选中的!单击事件肯定要触发!

         好的设计是让单击和双击事件执行相关联的两个动作,就像上面说的!如果你一定要执行不相关的两个动作,你只能在双击事件中撤销单击事件执行的结果!


    周雪峰
    2010年6月8日 10:15
    版主
  • 为当前form定义个全局string变量

    在click事件中检查该该量是否有值

    有的话 就直接return

    没有的话 给他赋值

    2010年6月9日 6:34
  • 可以这样  做一个时间戳记录单击的时刻,在下次单击进入事件的时候用这个时间戳判定,如果不符合最短时间间隔要求,就直接返回。此方法直接有效。
    2010年6月9日 16:09