我在C#Win App中使用旧的ActiveX控件。 它有一个MouseUp事件,它的eventArgs传递我们点击的点的X和Y但是对于我的场景我使用它的ItemClick事件并且它的eventArgs没有关于X和Y的信息。 但我需要知道它们以显示我的弹出窗口...所以有没有办法可以找出用户右键单击的X和Y的位置,这样我就可以将它传递给我的contextMenuStrip.Show方法。
由于
答案 0 :(得分:5)
Control类具有静态只读MousePosition属性,这会在屏幕上显示鼠标坐标。您可以使用它来了解ContextMenu的位置。
来自MSDN:
Control.MousePosition属性
输入:System.Drawing.Point
包含坐标的点 鼠标光标相对于 屏幕的左上角。
答案 1 :(得分:5)
Cursor.Position
将获取光标的当前屏幕坐标。对于大多数用途来说这是足够好的,即使鼠标可能在点击和被调用的处理程序之间移动。
答案 2 :(得分:4)
您需要获取获取屏幕位置的光标位置,然后从控件中调用pointToClient以获取控件的相关点。阿卡。 0,0是控件的左上角。
this.PointToClient(Cursor.Position);
+1以其他答案引导我朝着正确的方向前进。