2017-02-07 3 views
0

enter image description hereVB.net obtenir l'emplacement de UserControl dans un autre récipient

Tout en se référant à l'image ci-dessus: en VB.net, j'ai quatre cas de Windows.Forms.UserControl. A, B, C et D. Comme vous pouvez le voir, B est dans A, C est dans B et D est dans C. D a une référence à A, et aimerait calculer sa localisation dans A. Quelque chose comme moi .getLocationInContainer (A) où Me fait référence à D. Comment puis-je faire cela? J'ai fait un peu de recherche et trouvé pointToScreen() et pointToClient() mais ne peux pas vraiment comprendre comment les utiliser. Les noms des fonctions n'aident pas non plus. Je suis nouveau à VB.net ..

Répondre

2

D a une référence à un ... où Me fait référence à D ... Je l'ai fait un peu de recherche et a trouvé PointToScreen() et PointToClient() mais ne peut pas vraiment comprendre comment faire usage d'eux.

Ce serait certainement la voie la plus facile. Commencez par avoir D convertir le point (0, 0) en coeurs d'écran. Utilisez ensuite la référence à A pour le reconvertir en coordonnées client. Ce sera votre réponse:

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

Très bien, j'essaie maintenant. – pnizzle

+0

Oui, c'est exactement ce que je recherchais. Simple et direct, avec une explication. – pnizzle