在参考上面的图片时:在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的新手..
答案 0 :(得分:2)
D引用了A ...我指的是D ......我做了一些研究并找到了 pointToScreen()和pointToClient()但不能真正弄清楚如何 利用它们。
那肯定是最简单的路线。首先让D将点(0,0)转换为屏幕坐标。然后使用对A的引用将其转换回客户端坐标。那就是你的答案:
Dim ucDscreenCoords = Me.PointToScreen(New Point(0, 0))
Dim ucDclientCoordsRelativeToA = A.PointToClient(ucDscreenCoords)