2016-11-01 2 views
-1

Ich habe ein WinForms-Panel, das zwei Elemente enthält, z. Etiketten.Etikettensteuerelemente innerhalb des Fensters in WinForms anders ausrichten

Ich muss sie horizontal anders ausrichten, sagen wir, Label1 muss an der Mitte des Panels ausgerichtet werden und Label2 muss an der rechten Seite des Panels ausgerichtet werden. Die Ausrichtung muss bei der Größenänderung beibehalten werden.

Welches Panel soll ich verwenden? Panel? FlowLayoutPanel? Noch etwas? Wie sollte ich die Eigenschaften von Panel/Labels einstellen, um die obige Anordnung zu erreichen?

+1

Es ist besser, ein Bild vor der Größenanpassung und und Bild nach der Größenänderung zu teilen, dann wäre die Anforderung klarer. Vielleicht sind es nur einige Eigenschafteneinstellungen, die 'Anchor' verwenden, vielleicht benötigen Sie einen Code für die Ereignisbehandlung. –

+0

Label kann es selbst tun, ohne Hilfe von der Tafel. Verwenden Sie die Anchor-Eigenschaft. Verwenden Sie Oben + Rechts, um die Ausrichtung nach rechts auszurichten. Center ist ein bisschen mehr Arbeit: Verwenden Sie AutoSize = False, TextAlign = TopCenter, positionieren Sie die Beschriftung in der Mitte, Anker = Links + Oben + Rechts. –

+0

@Hans Passant: es funktioniert fast so, wie ich brauche. Ihre Anweisung "Positionieren Sie das Etikett in der Mitte" reicht nur aus, wenn die Größenänderung die Breite erhöht. Für eine funktionierende Lösung zur Verringerung der Breite muss "Position des Etiketts in der Mitte" ersetzt werden, um "die Breite des Etiketts zu den Rändern der umschließenden Platte zu strecken (und ja, mach die Dehnung der rechten Seite durch Label2)". In letzterem Fall muss man sich auch um die z-Ordnungen kümmern, um zu vermeiden, dass label2 versteckt wird. – Feri

Antwort

0

Verwenden Sie TabelLayoutPanel mit zwei Spalten. Setzen Sie den linken Beschriftungsanker nach Oben und Unten und beschriften Sie die Textausrichtung mittig. Beschriftung 2 Anker rechts, Text rechts Mitte.

Machen Sie TabelLayoutPanel entweder Dock zu füllen (wenn es das einzige Steuerelement auf dem Formular ist) ODER setzen Sie den Anker auf die Seiten, die Sie in Richtung erweitern möchten.

Weitere Ausrichtung des Etiketts kann mit seinen Ankerpositionen innerhalb des übergeordneten Behälters und Textausrichtung gesteuert werden.

+0

Edit: danke, aber soweit ich sehe, wird dies Label1 auf das Zentrum der Spalte 1 von TableLayoutPanel ausrichten, nicht auf die Mitte der vollen Breite des gesamten TableLayoutPanel. – Feri

Verwandte Themen