Pregunta

Tengo la siguiente estructura en un formulario Windows:

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

Mi expectativa es que al cambiar la visibilidad de los GroupBoxes debe hacer que la ventana se ajuste a un nuevo tamaño para recuperar espacio vacío, o adaptarse a los nuevos controles. Sin embargo, esto no sucede automáticamente. Si puedo minimizar a la bandeja y luego restaurar la forma (es decir, cambiando de visible, ShowInTaskbar, WindowState = Normal / minimizada), entonces cuando vuelve a aparecer, que se han actualizado correctamente. Otra cosa que lo activa es una actualización de contenidos en un StatusStrip en la parte inferior de la página (mostrando una etiqueta, cambiar una barra de progreso, etc.). He intentado varias combinaciones de vudú de inspiración de Invalidate / Actualización / OnResize etc, pero siento que me falta algo un poco a alguien más fundamental y la esperanza puede ver la falla obvia en lo que estoy describiendo.

Todos mis cambios a widgets en la forma están en el interior InvokeRequired / Invoke, si eso es relevante.

¿Fue útil?

Solución

No se puede repro este problema con una forma sencilla prueba que utiliza la configuración de diseño y de propiedad. área de cliente del formulario se contrae en el arranque y crece a medida que sea necesario para hacer visible el cuadro de grupo cuando establezca su propiedad Visible en true.

Se puede pedir una recálculo disposición explícita con el método PerformLayout ().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top