Positionierung UserControl relativ zum Formular oder den Bildschirm
Gibt es eine Möglichkeit zum abrufen und festlegen der .Location
einer UserControl
, das ist positioniert auf einer Container
(z.B. ein Panel
) relativ zu den "meisten Eltern" Form?
Ich weiß, dass es die Möglichkeit der Berechnung der offset des Panel
selbst, und indem es der .Location
des UserControl
.
Aber in meinem Fall die Anzahl der übergeordneten Ebenen ist unbekannt, und kann sich von Fall zu Fall.
Also erst einmal die UserControl
gesetzt werden könnten auf eine Panel
direkt am Form
. Aber es gibt auch die Möglichkeit, dass die UserControl
befindet sich auf einem 2. Panel
die auf der 1. Panel
die auf der Form
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen:
Dieser berechnet die Position relativ zu Ihrem Form. Ändern Mir jedem Steuerelement, wenn Sie wie
Nun, wenn Sie wollen set der Lage z.B. (100, 100), im Verhältnis zu Ihrer Form
Denken Sie daran, dass, wenn die neue Position außerhalb der übergeordnete Bereich, das Steuerelement nicht sichtbar sein.
Ich diese Funktion verwenden, um ein Kontext-Menü in der Nähe ein Steuerelement wie eine textbox oder ein button. Sie können x-und y-zu null gibt die Position eines Steuerelements selbst.
Was ist, wenn Sie nehmen Sie Ihre Idee von der Berechnung der offset von der Platte und berechnen Sie den offset, die rekursiv wieder auf die Form? also ich habe eine Textbox1 in eine Panel2 innerhalb einer Panel1. Panel1 liegt bei .Links 266, Panel2 ist .Links 77 in Panel1.
Nun, wenn ich GetLeftOffset(Mich.TextBox1), es gibt einen Offset von 343 (266 + 77).