我有一个垂直滚动的控件。我需要计算相对于控件顶部的鼠标位置(点击时),而不仅仅是可见区域。
例如,假设我的控件的高度为 500。滚动条导致可见矩形的高度为 100。因此,当我部分滚动时,客户端坐标(来自鼠标单击)将返回一个相对于客户端矩形(50 , 例如)。
但我想知道的是从我的控制开始的偏移量,所以它应该是 250。
我已经尝试了一段时间来解决这个问题,我认为我必须忽略一些简单的事情,因为我没有找到关于该主题的太多信息。
谢谢。
尝试查看PointToClient 方法和MousePosition 方法,并尝试获取鼠标的屏幕坐标并将其转换为控件的相对坐标。
Point screenPos = new Point(MousePosition.X, MousePosition.Y);
Point myPos = myControl.PointToClient(screenPos);
Run Code Online (Sandbox Code Playgroud)