让Winform控件同时支持单击和双击事件
来源:互联网 发布:2016年中国m2数据 编辑:程序博客网 时间:2024/05/19 13:26
如果给一个控件同时添加了单击事件和双击事件,那么在触发双击事件前必然会触发单击事件,为了解决这个问题,在msdn上找到了微软提供的解决方法:http://msdn.microsoft.com/en-us/library/ms171543(VS.80).aspx。
其主要思想是:单击鼠标时,启动一个Timer,Timer起计时器作用,Timer运行时间超过了一次双击鼠标所用的最长时间,而第二次鼠标点击事件还没有发生时,就认为是单击,反之,如果在一个鼠标双击所用时间的最长时间内,又一次触发了鼠标点击事件,则可视为双击。
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms; namespace DoubleClick{ public partial class Form1 : Form { private bool _isFirstClick = true; private bool _isDoubleClick = false; private int _milliseconds = 0; private Timer _doubleClickTimer; private Rectangle _doubleRec; public Form1() { InitializeComponent(); this.button1.MouseDown += new MouseEventHandler(button1_MouseDown); _doubleClickTimer = new Timer(); _doubleClickTimer.Interval = 100; _doubleClickTimer.Tick += new EventHandler(_doubleClickTimer_Tick); } //_doubleClickTimer的Tick事件 private void _doubleClickTimer_Tick(object sender, EventArgs e) { _milliseconds += 100; if (_milliseconds >= SystemInformation.DoubleClickTime) { _doubleClickTimer.Stop(); if (_isDoubleClick) { MessageBox.Show("Double Click"); } else { MessageBox.Show("Single Click"); } _isDoubleClick = false; _isFirstClick = true; _milliseconds = 0; } } //鼠标按下事件 private void button1_MouseDown(object sender, MouseEventArgs e) { if (_isFirstClick) { _doubleRec = new Rectangle(e.X - SystemInformation.DoubleClickSize.Width / 2, e.Y - SystemInformation.DoubleClickSize.Height / 2, SystemInformation.DoubleClickSize.Width, SystemInformation.DoubleClickSize.Height); _isFirstClick = false; _doubleClickTimer.Start(); } else { if (_doubleRec.Contains(e.Location)) { _isDoubleClick = true; } } } }}
0 0
- 让Winform控件同时支持单击和双击事件
- GridView同时支持行单击和双击事件的
- 控件的单击事件和双击事件
- ios中控件同时响应单击和双击事件以及多击事件
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- ASP.NET DEMO 15: 同时支持行单击和双击事件的 GridView/DataGrid
- 单击事件和双击事件同时存在的处理办法
- js 同时实现单击事件和双击事件
- 双击 单击 CLISTbOX 同时相应 单击 双击 事件 ~~~
- javascript同一个元素同时绑定click和dblclick事件(同时单击和双击事件)
- Jquery实现双击行的同时不单计行(在Javascript中让单击Click和Double Click双击事件各自独立)
- 4.2 控件双击事件和触摸事件同时响应
- scheme的应用序
- Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
- windows下常见cmd命令
- leetcode14
- 【半转半写】div水平垂直居中的完美解决方案
- 让Winform控件同时支持单击和双击事件
- C中.h头文件的写法
- oracle 12c 安装
- Android M 新的运行时权限开发者需要知道的一切
- jQuery EasyUI使用教程之创建一个拖放的购物车
- Python查询天气预报
- 使用百度地图API
- 网络攻击知识之几种IP地址攻击方式
- python安装第三方库