Mehrere Steuerelemente andocken - eine füllt den verbleibenden Speicherplatz aus
Ich versuche zu dock N die Anzahl der Steuerelemente in einem container. Ich möchte, dass Sie alle füllen die gesamte Breite, aber stack. Ich möchte ein bestimmtes Steuerelement (momentan die Letzte) , füllen Sie den verbleibenden Platz, während alle anderen haben Feste Größen.
:
Button b1 = new Button() { Text = "Button 1", Dock = DockStyle.Top };
Button b2 = new Button() { Text = "Button 2", Dock = DockStyle.Top };
Button b3 = new Button() { Text = "Button 3", Dock = DockStyle.Fill };
Controls.Add(b1);
Controls.Add(b2);
Controls.Add(b3);
Produziert dies:
Wie Sie sehen können, Taste 3 tut genau das, was ich sagte es: Fill
den Eltern. Aber das ist nicht das, was ich wollen es zu tun. Abgesehen von manuell platzieren und Größenänderung Ereignisse, etc. wie kann ich die Schaltfläche 3 füllen Sie den verbleibenden Platz?
Hinweis: ich bin nicht mit dem designer.
Kommentar zu dem Problem
Sehen Sie [hier][1]. Dies ist eine doppelte. [1]: stackoverflow.com/questions/154543/...
InformationsquelleAutor der Frage Jonathon Reinhart | 2011-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim hinzufügen
b3.BringToFront()
(nachdem es Hinzugefügt wurdeControls
) funktioniert, ist die einfachste Lösung hier ist einfach die Reihenfolge ändern, in der die Schaltflächen Hinzugefügt werdenControls
. Der folgende code funktioniert einwandfrei:Das Ergebnis:
Wenn Sie einen genauen Blick auf die Grenzen in diesem kleinen Beispiel, das tatsächlich zu funktionieren scheint besser als
BringToFront()
.InformationsquelleAutor der Antwort Jonathon Reinhart
Grundsätzlich die
DockStyle.Fill
Kontrolle sollte zuerst Hinzugefügt werden, die in derControls
Sammlung.InformationsquelleAutor der Antwort vezenkov
Verwenden, Bringen Sie nach Vorne auf Ihre Taste 3 im designer, oder nennen Sie diesen code:
InformationsquelleAutor der Antwort Jay Riggs
button 1 und 2 haben sollten, dock-Eigenschaft auf top zu machen, und Taste 3 nehmen Sie den rest des Raumes können Sie seine dock-Eigenschaft auf bottom.
dock = fill wird die Taste füllen den gesamten Raum, nicht nur den verbleibenden Platz. Unten wird die Funktion nur als Spitze hat, sondern verankern es an den unteren Rand des übergeordneten Containers. Anwenden-buttons in der Reihenfolge 1, 2, 3.
Darüber hinaus können Sie legen Sie die dock-Eigenschaft auf top auf alle drei und einfach der button "Größe" drei unterschiedlich.
InformationsquelleAutor der Antwort DavidG