c# 托盘双击不触发单击事件
2009-02-13 13:49
295 查看
在开发winform的时候我发现,当执行双击操作(notifyIcon1_MouseDoubleClick)时,会同时伴随着单击事件(notifyIcon1_MouseClick)的发生。。那如何才能使双击事件不触发单击事件呢?
我想到了如下方法,即创建一个Timer控件(以下名为timer_singleclick),一旦单击发生,就自动启动Timer的Tick事件(timer_singleclick_Tick(object sender, EventArgs e)),一定时间后,若没有第二次点击发生,则执行单击事件(Operate_DoubleClick()),若在这段时间有双击事件(notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e))发生,则停止Timer,此时单击事件就不会发生了。。
具体实现代码见下:
我想到了如下方法,即创建一个Timer控件(以下名为timer_singleclick),一旦单击发生,就自动启动Timer的Tick事件(timer_singleclick_Tick(object sender, EventArgs e)),一定时间后,若没有第二次点击发生,则执行单击事件(Operate_DoubleClick()),若在这段时间有双击事件(notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e))发生,则停止Timer,此时单击事件就不会发生了。。
具体实现代码见下:
int click = 1; private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) //双击托盘弹出 { timer_singleclick.Enabled = false; Operate_DoubleClick(); } private void notifyIcon1_MouseClick(object sender, MouseEventArgs e) //单击托盘弹出 { if (e.Button == MouseButtons.Left) timer_singleclick.Enabled = true; } private void timer_singleclick_Tick(object sender, EventArgs e) { click = click + 1; if (click == 5) { Operate_Click(); timer_singleclick.Enabled = false; click = 1; } } private void Operate_DoubleClick() { //这里为双击的操作代码 } private void Operate_Click() { //这里为单击的操作代码 }
相关文章推荐
- 触发C#Button的双击事件
- [转]jQuery 双击事件(dblclick)时,不触发单击事件(click)
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- c#编程方式触发单击事件
- [AHK]为AutoHotkey的托盘图标增加左键单击、双击事件动作
- Extjs触发单击、双击、右击事件。
- jQuery 双击事件(dblclick)时,不触发单击事件(click)
- 解决Extjs一次双击会触发两次单击事件,和一次双击事件
- jQuery 双击事件(dblclick)时,不触发单击事件(click)
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- jQuery 双击事件(dblclick)时,不触发单击事件(click)
- Jquery双击事件不触发执行单击事件解决方法
- Jquery双击事件不触发执行单击事件解决方法
- C# 中如何区分鼠标的单击或双击事件
- 【C# 】双击一行触发事件
- C#窗体鼠标事件区分单击双击
- JQuery如何实现双击事件时不触发单击事件