【问题标题】:How does mouse position translate to a scrolled control?鼠标位置如何转换为滚动控件?
【发布时间】:2012-04-20 03:32:59
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

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

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

    【讨论】:

    • 不做作者(和我)需要做的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 2011-03-06
    • 2016-11-09
    • 1970-01-01
    • 2012-12-07
    • 1970-01-01
    相关资源
    最近更新 更多