【问题标题】:C# Winforms ListView DoubleClick event anywhereC# Winforms ListView DoubleClick 事件随处可见
【发布时间】:2011-10-11 11:51:27
【问题描述】:

我正在尝试在我的 winform 中获得以下功能:

我需要这样,每次有人在我的 ListView 内双击时,都会发生一些事情,但该事件似乎仅在双击 ListView 中包含项目的行而不是 ListView 中的任何位置时触发(包括空的所有项目下方的区域)。

双击ListView中的anywhere会触发什么事件?

谢谢

【问题讨论】:

  • 使用 MouseDoubleClick 事件。如果您想知道是否点击了任何有趣的内容,请使用 HitTest() 方法。

标签: c# winforms listview


【解决方案1】:

您可以使用 ListView1_MouseDown 事件而不是单击

【讨论】:

  • 我应该在问题中更清楚(就像我在标题中所说的那样)-我只对双击感兴趣(尽管您的解决方案确实有效)。
  • 在 MouseDown 事件处理程序中,编写如下代码: if (e.Clicks == 2) { /* 您的代码响应双击 */ }
【解决方案2】:

您可能可以通过从 ListView 继承并覆盖 OnNotifyMessage() 方法来实现所需的行为。

在该方法中,您必须截获正确的消息:WM_LBUTTONDBLCLK(或类似的)。

这不会是你写过的最漂亮的代码,但应该会给你带来结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-12
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    相关资源
    最近更新 更多