Ändern der Größe von Steuerelementen mit der Größenänderung von Formularen

7

Ich habe mehrere Fragen zum Stapelüberlauf gelesen, ohne eine funktionierende Lösung für mein Problem gefunden zu haben. Wie kann ich die Größe meiner Steuerelemente ändern, wenn die Größe des Formulars geändert wird? Ich möchte, dass sie größer oder kleiner werden, wenn die Form größer oder kleiner wird.

Im Visual Basic war das ziemlich einfach mit der form.Zoom-Eigenschaft (die eigentlich keine Größenanpassung erfordert, aber gelöst hat, was ich brauchte). Leider ist dies in C # winforms nicht verfügbar.

Hier sind einige andere Dinge, die ich ohne Glück versucht habe:

%Vor%

Wenn ich ein tatsächlich funktionierendes Codebeispiel auf einer anderen Stapelüberlauffrage übersehen hätte, würde ich es gerne sehen, aber die, die ich gefunden habe, waren ähnlich denen, die nicht funktionieren.

Vielleicht habe ich es missbraucht und jemand könnte Beispielcode posten, um für diejenigen unter uns zu zeigen, die diese Frage stellen, wie sie das Problem lösen können.

Ich habe auch versucht, einige der Anker- / Andock-Tools zu verwenden, da sie denken, dass sie das automatisch erlauben würden, aber das ist nicht der Fall.

    
Kairan 28.02.2013, 09:22
quelle

5 Antworten

1

Ich habe eine alternative Lösung gefunden, die gut für mich funktioniert, ich freue mich über alle negativen oder positiven Kommentare zu der Lösung.

Mit mehreren Split Containern und Split Containern innerhalb von Split Containern in verschiedenen Regionen kann ich die primären Teile des Layouts abschneiden, und innerhalb von dort mit Docking and Anchoring kann ich genau das erreichen, was ich machen wollte - es funktioniert wunderbar.

Ich würde darauf hinweisen, dass mir bewusst ist, dass manche Leute, die online auftauchen, getrennte Container mit vielen Ressourcen verwenden.

    
Kairan 29.01.2014, 21:02
quelle
16

Die beste Option ist die Verwendung eines TableLayoutPanel . Setzen Sie TableLayoutPanel auf das Formular, setzen Sie die Eigenschaft Dock auf Fill , erstellen Sie die erforderlichen Zeilen und Spalten und fügen Sie die Steuerelemente in die Zellen ein. Natürlich müssen Sie Dock/Anchor für die Steuerelemente in den Zellen festlegen, damit sie auf Änderungen der Zellengröße reagieren. In einigen Situationen müssen Sie möglicherweise Panel in eine Zelle einfügen und die Steuerelemente darin ablegen, da jede Zelle nur ein einziges Steuerelement enthalten kann. Sie müssen möglicherweise auch RowSpan / ColumnSpan auf den Steuerelementen.

Indem Sie TableLayoutPanel verwenden, haben Sie vollständige Kontrolle darüber, wie Ihre Cotrole angeordnet werden sollten. Sie können absolute oder prozentuale Größe für Zeilen und Spalten festlegen.

    
Mohammad Dehghan 04.03.2013 07:01
quelle
5

Verwenden Sie Anker des Steuerelements. Es gibt eine Option zum Verankern von oben, unten, links und rechts. Und du bist gut zu gehen.

    
Freddie Fabregas 28.02.2013 09:25
quelle
1

Was Sie in Ihrem Code versuchen, ist, die Größe der Steuerelemente zu ändern, was nicht so gut ist. Im Allgemeinen sollte die Größe der Schaltflächen und Textfelder nicht geändert werden, wenn Sie das Formular neu formatieren, aber sie müssen sich häufig verschieben (Standort ändern). Einige Steuerelemente müssen die Größe entsprechend der Größe ändern und in den meisten Fällen nur eine Dimension. Die zentralen Steuerelemente, die für den Arbeitsbereich verwendet werden (wenn Sie beispielsweise das Werkzeug zum Zeichnen entwickeln), sollten die Größen beider Dimensionen ändern. All dies können Sie erreichen, indem Sie die Dock- und / oder Anchor-Eigenschaften der Steuerelemente richtig einstellen.

%Vor%

Alle diese Einstellungen können auch einfach im Eigenschaftenfenster vorgenommen werden, wenn Designer verwendet wird.

Aber wenn Ihnen das nicht genug ist, werden Sie in seltenen Fällen nur die Position des Steuerelements ändern wollen:

%Vor%     
Nikola Davidovic 28.02.2013 09:44
quelle
1

Wenn sich Ihre Steuerelemente in einem Gruppenfeld befinden, stellen Sie sicher, dass die Eigenschaften der Gruppenrahmen geändert werden. Kontrollen innerhalb der Box werden von der Box gesteuert. Die Boxgröße (sofern sie sich nicht in einer anderen Box befindet) wird durch das Formular gesteuert.

    
HillbillyBlue 19.03.2014 23:36
quelle

Tags und Links