2

我正在实现一个模块,该模块需要MouseClick同时MouseDoubleClick处理ChartControl. DevExpress我使用的版本是 v12.2。

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

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

我试过什么:

  • 处理MouseClickClick事件并查看MouseEventArgs#Clicks属性。但它始终是 1。

我在用什么:

  • 声明一个布尔变量来判断是否MouseDoubleClick被触发。MouseClick处理时,稍等片刻,如果该变量未打开,则执行代码。我认为这是一个糟糕的实现。
4

1 回答 1

2

您需要一台时间机器来查看两者之间的区别。双击不可避免地从单击开始,您总是首先看到第一次单击。

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

这行得通,但请注意,对单击的延迟响应相当烦人。最好不要用这样的用户界面惹恼您的用户。

于 2013-06-05T13:28:35.727 回答