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