光标的当前位置

时间:2013-06-15 18:09:46

标签: c# winforms

问题是我试图获得picturebox的当前位置。当我使用MouseEvenArgs时一切正常。但是当我尝试使用

检测位置时
 Cursor.Position.X;

它无法以正确的方式运作。差异接近20-30px。在我看来,它给了我一些不同的立场。

所以,问题是:byMouseEventArgs或Cursor.Position得到的位置之间有什么区别吗?还有其他方法可以在不使用鼠标事件的情况下检测我当前的光标位置吗?

2 个答案:

答案 0 :(得分:4)

Cursor.Position测量屏幕坐标。您可以使用PointToClientPointToScreen方法在屏幕和客户端(表单)坐标之间进行映射。

MouseEventArgs.GetPosition返回

  

鼠标指针相对于指定元素的位置。

MSDN reference - Windows窗体坐标

答案 1 :(得分:0)

Cursor的默认剪切矩形是整个屏幕,您从MouseMove接收的坐标将转换为当前控件:

http://msdn.microsoft.com/en-us/library/system.windows.forms.cursor.position.aspx