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