Domanda

Ho la seguente struttura in un Windows Form:

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

La mia aspettativa è che cambiando la visibilità delle GroupBoxes dovrebbe causare la finestra per scattare ad una nuova dimensione per recuperare spazio vuoto, o accogliere nuovi controlli. Tuttavia, questo non avviene automaticamente. Se io minimizzare al vassoio e quindi ripristinare la forma (cioè interruttore Visibile, ShowInTaskbar, WindowState = Normale / Minimized), allora quando riappare, avrà aggiornato correttamente. Un'altra cosa che lo attiva è un aggiornamento di contenuti in uno StatusStrip in fondo alla pagina (che mostra un'etichetta, la modifica di una barra di avanzamento, ecc). Ho provato varie combinazioni voodoo di ispirazione di Invalidate / aggiornamento / OnResize etc, ma sento che mi manca qualcosa di un po 'più fondamentale e spero che qualcuno può vedere il difetto evidente in quello che sto descrivendo.

Tutti i miei aggiornamenti widget del form sono all'interno InvokeRequired / Invoke, se questo è rilevante.

È stato utile?

Soluzione

Non riesco a repro questo problema con un semplice modulo di test che utilizza le impostazioni di layout e proprietà. area client del form è ridotta allo start-up e cresce come necessario per rendere la casella di gruppo visibile quando ho impostato la sua proprietà Visible su true.

E 'possibile chiedere un ricalcolo il layout esplicito con il metodo PerformLayout ().

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top