在C#中,Button是有DoubleClick事件的,只是它没有出现在事件列表中,而且.net也是把这个事件给"屏蔽"掉了,无论你双击一个按钮怎么快,也不会触发这个事件。

为了能够触发Button的双击事件,我们可以重载MouseDown事件,记录每次鼠标按下的时间,如果两次点击的时间足够近的话,就触发一次双击方法。

这样也大致能够达到双击的效果,我所采用的方法其实和这个类似,是继承Button类,重载Button类的Click事件,在Click事件中判断两次点击的时间,如果近的话,就触发双击事件。废话少说,上代码:

Code
//======================================================================
//
//        Copyright (C) 2007-2008 杭州石鼓文信息科技有限公司    
//        All rights reserved
//
//        filename :ButtonEx
//        description :
//
//        created by 叶进 at  10/13/2008 15:38:24
//        http://adaiye.cnblogs.com
//
//======================================================================

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;

public class ButtonEx : Button
    {
        public new event EventHandler DoubleClick;

DateTime clickTime;
        bool isClicked = false;

protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);

if (isClicked)
            {
                TimeSpan span = DateTime.Now - clickTime;
                if (span.Milliseconds < SystemInformation.DoubleClickTime)
                {
                    DoubleClick(this, e);
                    isClicked = false;
                }
            }
            else
            {
                isClicked = true;
                clickTime = DateTime.Now;
            }
        }
    }

这样,就可以为创建的ButtonEx按钮添加DoubleClick事件了:

button.DoubleClick += new EventHandler(Button_DoubleClick);  // 双击按钮事件

触发C#Button的双击事件相关推荐

  1. 解决JS双击事件dblclick触发时,同时会执行click事件中的语句

    双击dblclick事件,同时会执行click事件中的语句,当需要为一个元素同时添加这两个事件时,显然这不是我们想要的结果,举个实例,在最近做的canvas开发中使用鼠标画区域,鼠标单击一下开始画,鼠 ...

  2. 双击事件(dblclick)时,不触发单击事件(click) 1

    事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click).即一个标签元素(如button等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击 ...

  3. js按钮触发网页提醒_js触发asp.net的Button的Onclick事件应用

    在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制的麻烦. asp.net带来便利的同时,也带来一个问题.在实际 ...

  4. 【WPF】代码触发Button点击事件

    先定义Button按钮并绑定事件. public void test() {Button btn = new Button();btn.Click += Btn_Click; }private voi ...

  5. JavaScript 技巧篇-js增加延迟时间解决单击双击事件冲突,双击事件触发单击事件

    js 的单双击事件同时存在会有一个问题:双击事件会同时触发单击事件,两个事件存在冲突. 我们加一个延迟时间就能很好的解决这个问题. 原理: 当接收到第一个点击时,我们先把单击事件存储在这个是全局变量 ...

  6. jQuery 双击事件(dblclick)时,不触发单击事件(click)

    在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click).即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那 ...

  7. Asp.Net回车键触发Button的OnClick事件解决方案

    在aspx页面有textbox文本框,还有三个button按钮.启用textbox的TextChanged事件和button的click事件. 问题: 现在在textbox文本框输入完数据按" ...

  8. js触发asp.net的Button的Onclick事件

    在asp.net引入事件驱动之后,在一个页面上很容易解决多个按钮触发不同事件的问题,避免了在asp中需要多个form或者通过js脚本来控制 的麻烦. asp.net带来便利的同时,也带来一个问题.在实 ...

  9. C#之敲击回车键触发Button的Click事件

    C#之敲击回车键触发Button的Click事件 在做项目时,需要在TextBox控件中输入指令,点击Button后将指令传给下位机.为了简化操作,想直接敲击回车键实现Button的Click事件来发 ...

  10. java 双击触发事件_java鼠标双击事件怎么实现

    很多人都学习过java,但是你知道java鼠标双击事件怎么实现吗,跟着学习啦小编一起学习ava鼠标双击事件. java鼠标双击事件的实现方法 鼠标的单双击事件在很多时候对我们帮助很大,但是在JAVA中 ...

最新文章

  1. camera raw 滤镜预设_Camera Raw中利用预设实现批量化调色,PS这款滤镜真的很好用...
  2. DNN 4.6.2的中文语言包
  3. 等价关系和等价类_确定Java等价性的新时代?
  4. Sencha Architect 2 的使用
  5. linux权限介绍,Linux的权限介绍
  6. 2012,新的一年,新的开始
  7. android 条码扫描控件,Android Zxing条码扫描自定义控件(附代码)
  8. QTP统计页面加载时间
  9. matlab函数表达式里分号_matlab中分号、冒号、逗号等常用标点符号的功能和用法总结...
  10. 矩阵A的值域空间和其零空间
  11. 推荐几个常用的Python扩展工具包
  12. An unexpected error prevented the server from fulfilling your request. (HTTP 500)
  13. bcdedit删除引导_Bcdedit命令教程以及用于编辑Windows引导配置的示例
  14. C++之定义动态二维数组
  15. Hexo sakura整理
  16. Fw:[一恒茶社] 作为大学教师,我 感到羞耻??教师节有感及其他[转贴]
  17. 台式计算机内存是什么意思,内存频率是什么意思 电脑内存的工作频率是什么...
  18. 基于AI视觉技术构建柔性生产数字化车间
  19. 简历被肆意贩卖,个人信息安全何在?
  20. Python 列表(list)

热门文章

  1. Scrapy框架之日志等级
  2. Java多线程和并发(一),进程与线程的区别
  3. 南海区行政审批管理系统接口规范v0.3(规划) 5.投资项目联合审批系统API 5.1.【uploadFile】证件文书附件上传...
  4. 手淘适配-flexible
  5. vue项目下,webpack.js/package.json配置
  6. MR室内室外用户区分
  7. HDU 2444 The Accomodation of Students (二分图最大匹配+二分图染色)
  8. ie7span标签float换行悬浮
  9. 海洋工作室——网站建设专家:只有十句话,看了十分钟(完整版)[不应该只看十分钟!!!]...
  10. ArcGIS 9.3 For JavaScript API 学习笔记