VB.net在另一个容器中获取userControl的位置

时间:2017-02-07 00:42:18

标签: vb.net winforms windows-forms-designer subviews

enter image description here

在参考上面的图片时:在VB.net中,我有四个Windows.Forms.UserControl实例。 A,B,C和D.正如你所看到的,B在A中,C在B中,D在C中.D有A的引用,并且想要计算它在A中的位置。像我这样的东西.getLocationInContainer(A)我指的是D.我怎么能这样做?我做了一些研究,发现了pointToScreen()和pointToClient(),但无法真正弄清楚如何使用它们。功能名称也没有帮助。我是VB.net的新手..

1 个答案:

答案 0 :(得分:2)

  

D引用了A ...我指的是D ......我做了一些研究并找到了   pointToScreen()和pointToClient()但不能真正弄清楚如何   利用它们。

那肯定是最简单的路线。首先让D将点(0,0)转换为屏幕坐标。然后使用对A的引用将其转换回客户端坐标。那就是你的答案:

Dim ucDscreenCoords = Me.PointToScreen(New Point(0, 0))
Dim ucDclientCoordsRelativeToA = A.PointToClient(ucDscreenCoords)