5

我有一个垂直滚动的控件。我需要计算相对于控件顶部的鼠标位置(单击时),而不仅仅是可见区域。

例如,假设我的控件的高度为 500。滚动条导致可见矩形的高度为 100。所以当我部分滚动时,客户端坐标(通过鼠标单击)将返回一个相对于客户端矩形的数字(50 , 例如)。

但我想知道的是从我的控制开始的偏移量,所以它应该是 250。

我已经尝试了一段时间来解决这个问题,我想我一定是忽略了一些简单的事情,因为我没有找到关于这个主题的太多信息。

谢谢。

4

1 回答 1

1

尝试查看PointToClient 方法MousePosition 方法,并尝试获取鼠标的 ScreenCoordinates 并将其转换为控件的相对坐标。

Point screenPos = new Point(MousePosition.X, MousePosition.Y);
Point myPos = myControl.PointToClient(screenPos);
于 2012-04-20T04:05:00.983 回答