Control解决双击事件引发单击事件
2017-01-05 11:12
337 查看
有Winform开发中,有时某个Control控件鼠标单双击要进行不同的操作,在双击的时候会同时触发单击事件
解决方法如下:
通过加一个计时器来进行判断当前操作是单击还是双击
#region 单双击事件
private bool isFirstClick = true;
private bool isDoubleClick = false;
private int milliseconds = 0;
private System.Windows.Forms.Timer doubleClickTimer = new System.Windows.Forms.Timer();
void pic_MasterDrawing_MouseDown(object sender, MouseEventArgs e)
{
// 鼠标单击.
if (isFirstClick)
{
isFirstClick = false;
doubleClickTimer.Start();
}
// 鼠标双击
else
{
isDoubleClick = true;
}
}
void doubleClickTimer_Tick(object sender, EventArgs e)
{
milliseconds += 100;
// 第二次鼠标点击超出双击事件间隔
if (milliseconds >= SystemInformation.DoubleClickTime)
{
doubleClickTimer.Stop();
if (isDoubleClick)
{
//处理双击事件操作
}
else
{
//处理单击事件操作
}
isFirstClick = true;
isDoubleClick = false;
milliseconds = 0;
}
}
#endregion
解决方法如下:
通过加一个计时器来进行判断当前操作是单击还是双击
#region 单双击事件
private bool isFirstClick = true;
private bool isDoubleClick = false;
private int milliseconds = 0;
private System.Windows.Forms.Timer doubleClickTimer = new System.Windows.Forms.Timer();
void pic_MasterDrawing_MouseDown(object sender, MouseEventArgs e)
{
// 鼠标单击.
if (isFirstClick)
{
isFirstClick = false;
doubleClickTimer.Start();
}
// 鼠标双击
else
{
isDoubleClick = true;
}
}
void doubleClickTimer_Tick(object sender, EventArgs e)
{
milliseconds += 100;
// 第二次鼠标点击超出双击事件间隔
if (milliseconds >= SystemInformation.DoubleClickTime)
{
doubleClickTimer.Stop();
if (isDoubleClick)
{
//处理双击事件操作
}
else
{
//处理单击事件操作
}
isFirstClick = true;
isDoubleClick = false;
milliseconds = 0;
}
}
#endregion
相关文章推荐
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- js鼠标单击和双击事件冲突问题的解决方法
- JS中双击和单击事件冲突的解决方法
- 【jQuery】jQuery双击事件与单击事件的冲突解决
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- JQuery 按键单击和双击事件冲突解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Java解决双击事件触发前总触发单击事件的问题
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- 双击和单击事件冲突解决方法
- js鼠标单击和双击事件冲突问题的解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- JavaScript双击、单击事件并存的一种解决思路
- js鼠标单击和双击事件冲突问题的快速解决方法