2009-12-04 5 views
5

Beschreibung Ich habe versucht, ein FlowLayoutPanel zu erstellen, das beispielsweise horizontal erweitert werden kann.Kann die Größe von untergeordneten Steuerelementen in einem FlowLayoutPanel-Steuerelement nicht ändern

Flowlayoutpanel und seine Unterkomponente Anker hat Top-Links-Rechts

Flowlayoutpanel Richtung gesetzt wurde TopDown eingestellt.

-> Bei der Anpassung des FlowLayoutPanel werden seine Unterkomponenten nicht in der Größe angepasst.

Schritt

  1. ein Flowlayoutpanel-Steuerelement erstellen auf dem Formular zu reproduzieren.

  2. Setzen Sie die FlowDirection des FlowLayoutPanel auf TopDown.

  3. Erstellen Sie ein Button-Steuerelement, und platzieren Sie es im FlowLayoutPanel-Steuerelement.

  4. Wählen Sie die Schaltfläche und die Flowlayoutpanel und setzen ihre Anker zu Top-Links-Rechts

  5. Try Flowlayoutpanel auf der horizontalen Art und Weise zu verlängern.

-> Flowlayoutpanel der Größe verändert, aber nicht auf den Button

Antwort

6

Die Flowlayoutpanel ist nur in einer dynamischen Art und Weise ist es Kontrollen Kind Layout gemeint. Dies bedeutet nicht, dass sie automatisch die Größe innerhalb des FlowLayoutPanel ändern. Ich vermute, dass das FlowLayoutPanel die Anchor-Eigenschaften seiner untergeordneten Steuerelemente ignoriert.

Um diesen Effekt zu erzielen, müssen Sie die untergeordneten Steuerelemente des FlowLayoutPanel-SizeChanged-Ereignisses manuell anpassen.

An dieser Stelle möchten Sie vielleicht noch einmal überprüfen, ob das FlowLayoutPanel wirklich das ist, was Sie verwenden möchten. Wenn Sie wissen, dass Sie immer eine Schaltfläche benötigen, um die Breite des FlowLayoutPanel zu füllen, können Sie es auch in einem Panel verankern und die Anker verwenden oder seine Dock-Eigenschaft festlegen.

4

Das Steuerelement FlowLayoutPanel berechnet die Breite einer impliziten Spalte aus dem breitesten untergeordneten Steuerelement in der Spalte. Alle anderen Steuerelemente in dieser Spalte mit Anker- oder Dock-Eigenschaften werden an diese implizierte Spalte angepasst oder gestreckt. Bei horizontalen Fließrichtungen verhält sich das Verhalten ähnlich. Das FlowLayoutPanel-Steuerelement berechnet die Höhe einer impliziten Zeile aus dem höchsten untergeordneten Steuerelement in der Zeile, und alle angedockten oder verankerten untergeordneten Steuerelemente in dieser Zeile werden ausgerichtet oder an die implizierte Zeile angepasst.

Check Msdn Dokumentation hier http://msdn.microsoft.com/en-us/library/ms171633.aspx

+0

Es muss eine Option wie „FlowBreak“ sein, mit dem Sie die Resize-Option für einzelne Kontrollen festlegen können. Ich habe eine ähnliche Situation, in der es ein bestimmtes Panel innerhalb des gesamten Kontrollsets gibt, das ich immer in voller Breite aufnehmen möchte, aber ich möchte trotzdem das automatische Layout für alles andere. Beim aktuellen Setup muss ich das eine oder das andere wählen ... Ich will beides. –

Verwandte Themen