【问题标题】:Get the point of click on a control获取控件的点击点
【发布时间】:2010-08-09 18:56:32
【问题描述】:

我在我的 C# Win 应用程序中使用旧的 ActiveX 控件。 它有一个 MouseUp 事件,它的 eventArgs 正在传递我们单击的点的 X 和 Y,但对于我的场景,我使用它的 ItemClick 事件,它的 eventArgs 没有关于 X 和 Y 的信息。 但我需要知道它们才能显示我的弹出窗口......所以有没有办法可以找出用户右键单击的 X 和 Y 的位置,以便我可以将其传递给我的 contextMenuStrip.Show 方法。

谢谢

【问题讨论】:

标签: c# winforms contextmenu location


【解决方案1】:

Control 类有一个静态只读MousePosition 属性,它给出了屏幕上的鼠标坐标。您可以使用它来了解 ContextMenu 的位置。

来自 MSDN:

Control.MousePosition 属性

类型:System.Drawing.Point

一个包含坐标的点 鼠标光标相对于 屏幕左上角。

【讨论】:

    【解决方案2】:

    Cursor.Position 将为您获取光标的当前屏幕坐标。对于大多数用途来说,这已经足够了,即使鼠标可能会在单击和被调用的处理程序之间移动。

    【讨论】:

    • 感谢 corvuscorax,您的回答和 fletcher 都为我工作。我将他标记为“答案”只是因为它之前发布过。
    • +1 两种解决方案都返回鼠标的坐标。不投票是错误的
    【解决方案3】:

    您需要获取获取屏幕位置的光标位置,然后从控件内调用pointToClient以获取控件的相关点。阿卡。 0,0 是控件的左上角。

    this.PointToClient(Cursor.Position);
    

    +1 其他答案,引导我朝着正确的方向前进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多