Ich entwerfe eine Benutzeroberfläche, und ich habe meinen Kopf juckt: Wie kann ich einen TextBox-Text und einen Label-Text nebeneinander ausrichten.
Im Designmodus ist es einfach, man bewegt einen mit der Maus, eine violette Linie erscheint und voila! Die Ausrichtung ist gut, aber meine sind Code generiert, also wie kann ich ihren Inhalt ausrichten?
Danke!
Bearbeiten : Layout ist etwas, das ich nicht verwenden kann (ich mache keine Regeln, mein Chef ..)
Ich benutze gerne FlowLayoutPanel
(anstelle von TableLayoutPanel
) für diesen Zweck, weil Sie nicht mit Spalten herumspielen müssen. Erinnern Sie , um die oberen und unteren Anker auf jedem Steuerelement zu entfernen, damit sie vertikal zentriert werden, und legen Sie FlowLayoutControl.AutoSize = true und AutoSizeMode = GrowAndShrink fest.
Bearbeiten : In Bezug auf Ihre Einschränkung, dass "Layout etwas ist, das ich nicht verwenden kann": Sie möchten also während der Laufzeit programmgesteuert auf die Position des violetten Text-Baseline-Snaplines zugreifen? Dies ist möglich, aber es ist unwahrscheinlich, dass es schneller als Layouts ist, da nur der Designer für das Steuerelement weiß, wo es ist. Daher müssen Sie Designer für alle Steuerelemente erstellen, für die Sie dies benötigen.
Diese Frage enthält Code, der als Ausgangspunkt verwendet werden kann , aber wie gesagt, ist es angesichts der Leistungseinschränkungen wahrscheinlich nicht der richtige Ansatz.
Sehen Sie sich das TableLayoutPanel an. Noch ist es nicht so einfach, die Baseline-Übereinstimmung zu erhalten, aber durch vertikales Zentrieren der Beschriftung und Einstellen der Zeilen auf AutoSize erhalten Sie etwas, das geordnet und flexibel ist.
Verwenden Sie dann die X-, Y-, Width-, Height-Eigenschaften jedes Steuerelements (von Control geerbt).
%Vor%