如何区分单击和双击

Posted on 2010-07-27 16:37  控件纵横  阅读(471)  评论(0)    收藏  举报

通常,“单击”启动一个用户界面 (UI) 操作,而“双击”扩展该操作。例如,单击通常选择一个项,而双击编辑所选的项。然而,Windows 窗体单击事件并不能轻松适用于下面这种特定方案,即单击和双击执行的操作不兼容的方案,这是因为连接到 ClickMouseClick 事件的操作是在连接到 DoubleClickMouseDoubleClick 事件的操作之前执行的。此主题阐释此问题的两种解决办法。一种方法是处理双击事件,然后回滚处理单击事件中执行操作。在极少数情况下,您可能需要通过处理 MouseDown 事件,并通过使用 SystemInformation 类的 DoubleClickTimeDoubleClickSize 属性来模拟单击和双击行为。您可以测量两次单击间的时间,如果第二次单击与第一次单击的间隔时间小于 DoubleClickTime 的值,且该单击在 DoubleClickSize 定义的矩形内发生,则执行双击操作;否则,执行单击操作。
回滚单击操作确保您正在处理的控件具有标准的双击行为。如果不具有标准双击行为,请用 SetStyle 方法启用控件。然后处理双击事件,并回滚单击操作及双击操作。下面的代码示例阐释如何创建启用双击行为的自定义按钮,及如何在双击事件处理代码中回滚单击操作。

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3