鼠标位置如何转换为滚动控件

本文关键字:滚动 控件 转换 位置 何转换 鼠标 | 更新日期: 2023-09-27 18:31:54

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

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

但我想知道的是我的控件开始的偏移量,所以它会是 250。

我一直在尝试解决这个问题,我想我一定忽略了一些容易的事情,因为我没有找到太多关于这个主题的信息。

谢谢。

鼠标位置如何转换为滚动控件

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

Point screenPos = new Point(MousePosition.X, MousePosition.Y);
Point myPos = myControl.PointToClient(screenPos);