2013-06-05 33 views
2

我正在实现一个模块,该模块需要处理的ChartControl上的MouseClickMouseDoubleClick。我使用的版本是v12.2。如何分别处理ChartControl上的MouseClick和MouseDoubleClick事件

当我双击该图表时,两个事件都被触发。我想(我认为它一定是)它只会触发一个事件,在这种情况下,MouseDoubleClick

那么,有谁知道如何解决这个问题?

什么是我试过:

  • 手柄MouseClickClick事件,看看MouseEventArgs#Clicks财产。但它始终为1

我使用的是什么:

  • 声明一个布尔变量来判断是否MouseDoubleClick被激发。在MouseClick处理,只是等待片刻,然后做代码,如果该变量不打开。我认为这是一个糟糕的实施。

回答

0

非常有趣的问题!

我想你会找到一个很好的解决方案here

+1

谢谢。通过你的帮助,我在'SystemInformation'类 –

2

您需要一台时间机器来查看两者之间的差异。不可避免地,只需点击一次即可开始双击,您总是首先看到第一次点击。

通过使用延迟过去的计时器,您可以获得一台能够看到未来的时间机器。将其间隔设置为SystemInformation.DoubleClickTime + 16并在Click事件中启动它,并在DoubleClick事件中停止它。如果Tick事件触发,那么这是一次单击。

虽然有效,但请注意,对单次点击的延迟响应相当烦人。最好不要用这样的用户界面惹恼你的用户。

+0

中发现了很多有趣的信息,我喜欢你的最后一句话。谢谢。这不是我的设计,我只是实现它。 –

相关问题