2017-02-07 7 views
0

enter image description hereVB.net erhält Lage von Usercontrol in einem anderen Behälter

Während des obigen Bild verweisen: in VB.net, ich habe vier Instanzen von Windows.Forms.UserControl. A, B, C und D. Wie Sie sehen können, ist B in A, C ist in B und D ist in C. D hat einen Bezug zu A und möchte seine Position in A berechnen. Etwas wie Ich .getLocationInContainer (A) wo Me sich auf D. bezieht Wie kann ich das tun? Ich habe ein wenig recherchiert und pointToScreen() und pointToClient() gefunden, kann aber nicht wirklich herausfinden, wie man sie nutzt. Die Funktionsnamen helfen auch nicht. Ich bin neu in VB.net ..

Antwort

2

D einen Verweis auf A hat ... wo ich auf D beziehen ... Ich habe ein bisschen recherchiert und gefunden PointToScreen() und PointToClient() aber kann nicht wirklich herausfinden, wie zu von ihnen Gebrauch machen.

Das wäre sicherlich der einfachste Weg. Beginnen Sie, indem Sie D den Punkt (0, 0) in Bildschirmkoordinaten konvertieren. Verwenden Sie dann den Verweis auf A, um es zurück in Client-Coords zu konvertieren. Das wird deine Antwort sein:

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

In Ordnung, ich gebe dir jetzt einen Versuch. – pnizzle

+0

Ja, genau das habe ich gesucht. Einfach und geradlinig, mit einer Erklärung. – pnizzle

Verwandte Themen