Frage

Ich habe die folgende Struktur in einer Windows-Form:

Form (AutoResize = true, AutoSizeMode = GrowAndShrink)
    FlowLayout (AutoResize = true, AutoSizeMode = GrowAndShrink)
        GroupBox
        GroupBox
        GroupBox
    StatusStrip

Meine Erwartung ist, dass die Sichtbarkeit der Veränderung verursacht Groupboxes sollte das Fenster auf eine neue Größe zu schnappen leeren Raum zurückzugewinnen oder neue Kontrollen aufzunehmen. Doch dies geschieht nicht automatisch. Wenn ich auf die Schale minimieren und dann die Form wiederherzustellen (das heißt Toggle-Visible, ShowInTaskbar, Window = Normal / Minimized), dann, wenn er wieder auftaucht, haben es korrekt aktualisiert. Eine andere Sache, dass Trigger es ist ein Update für Inhalte in einer Statuss am unteren Rand der Seite (zeigt ein Etikett, Ändern eines Fortschrittsbalken usw.). Ich habe verschiedene Voodoo-inspirierten versucht Kombinationen von Invalidate / Update / OnResize etc, aber ich glaube, ich bin fehlt etwas ein bisschen mehr grundlegende und Hoffnung jemand den offensichtlichen Fehler in sehen kann, was ich beschreibe.

Alle meine Updates zu Widgets auf dem Formular sind innerhalb InvokeRequired / Invoke, wenn das relevant.

War es hilfreich?

Lösung

Ich kann dieses Problem mit einer einfachen Testform Repro, die das Layout und Eigenschaftseinstellungen verwendet. Das Client-Bereich des Formulars wird beim Start-up geschrumpft und wächst je nach Bedarf des Gruppenfeld sichtbar zu machen, wenn ich seine Visible-Eigenschaft auf true gesetzt.

Sie können mit dem Perform () -Methode für eine explizite Layout Neuberechnung fragen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top