探寻C# Button双击事件

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

C# Button双击事件大家一定相当熟悉了,本文笔者又再一次为你阐述了C# Button双击事件的原理及实现方法。

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

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

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

下面就是C# Button双击事件的代码:

  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Text;  
  4. using System.Windows.Forms;  
  5.     public class ButtonEx : Button  
  6.     {  
  7.         public new event EventHandler DoubleClick;  
  8.         DateTime clickTime;  
  9.         bool isClicked = false;  
  10.         protected override void OnClick(EventArgs e)  
  11.         {  
  12.             base.OnClick(e);  
  13.             if (isClicked)  
  14.             {  
  15.                 TimeSpan span = DateTime.Now - clickTime;  
  16.                 if (span.Milliseconds < SystemInformation.DoubleClickTime)  
  17.                 {  
  18.                     DoubleClick(this, e);  
  19.                     isClicked = false;  
  20.                 }  
  21.             }  
  22.             else 
  23.             {  
  24.                 isClicked = true;  
  25.                 clickTime = DateTime.Now;  
  26.             }  
  27.         }  
  28.     }  

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

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

以上就是笔者介绍的C# Button双击事件。

【编辑推荐】

  1. 浅析Silvelight中显示多重数据模型集合
  2. C# XML解析方式实例解析
  3. 简述C# XML解析方法的特点及应用
  4. 有关事件与委托关系的思考
  5. .NET对象的XML序列化和反序列化实例详解
责任编辑:阡陌 来源: 博客园
相关推荐

2009-09-11 09:59:47

2009-09-10 12:00:09

C# listbox

2009-09-11 09:20:00

C# button事件

2009-08-26 17:10:09

C# 3.5新特性

2009-09-10 17:48:05

C# button

2009-08-27 15:22:27

C#中的GET与SET

2009-08-07 17:57:26

C#定义事件应用

2009-08-28 09:43:05

C#事件

2009-09-10 18:06:25

C# button快捷

2009-08-18 10:48:25

C#事件

2009-08-12 15:20:21

C#事件处理

2013-07-29 04:29:29

iOS开发iOS开发学习禁用UITabBarC

2009-09-11 10:25:35

C# button样式

2009-08-27 18:02:22

C#事件处理

2009-08-13 10:42:31

C#窗体拖动事件

2009-08-28 13:12:02

C# Page_Err

2009-09-07 15:31:49

C#支持事件

2009-08-12 18:28:09

C#事件处理程序

2009-09-07 04:19:56

C#窗体事件

2011-04-25 09:22:44

C#事件
点赞
收藏

51CTO技术栈公众号