c# - 鼠标位置如何转换为滚动控件?

标签 c# .net winforms

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

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

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

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

谢谢。

最佳答案

尝试查看 PointToClient MethodMousePosition Method并尝试获取鼠标的 ScreenCoordinates 并将其转换为控件的相对坐标。

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

关于c# - 鼠标位置如何转换为滚动控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239868/

相关文章:

c# - 我是否需要创建一个对象来按我的 "number"元素排序?

c# - 安装 Visual Studio 2015 社区后事件日志安全异常

调用 System.Net.WebClient.UploadFileAsync 时出现 .NET 错误

c# - 在 c# winform 中更改的文本上启用禁用按钮

C# WPF 需要快速缩小包含文本的图像

c# - 复选框数据绑定(bind)默认值 null

c# - 从原始 URL 获取重定向 URL

c# - 当前对 Controller 类型 'Create' 的操作 'WeeklyTargetController' 的请求在以下操作方法 : 之间不明确

c# - 如何将 UINaivgationBar 添加到属于 TabBarController 的 View

c# - EPPlus 号码格式