2009-12-04 17 views
5

Descripción Estaba intentando crear un FlowLayoutPanel que se puede extender, por ejemplo, de forma horizontal.Cannnot resize Child Controls en un control FlowLayoutPanel

FlowLayoutPanel y su componente secundario de anclaje se ha fijado a Top-izquierda-derecha

dirección FlowLayoutPanel se ha establecido en TopDown.

-> Al reajustar el FlowLayoutPanel, sus subcomponentes no cambian de tamaño de forma acorde.

Paso para reproducir

  1. crear un control FlowLayoutPanel en su formulario.

  2. Establezca FlowDirection del FlowLayoutPanel en TopDown.

  3. Crea un control de botón y colócalo en el control FlowLayoutPanel.

  4. seleccione el botón y el FlowLayoutPanel y puesto su anclaje al Top-izquierda-derecha

  5. tratar de extender FlowLayoutPanel en el camino horizontal.

-> FlowLayoutPanel cambia de tamaño, pero no el botón

Respuesta

6

El FlowLayoutPanel sólo está destinada a la disposición Es de controles secundarios de una manera dinámica. Esto no significa que cambiarán el tamaño automáticamente dentro del FlowLayoutPanel. Supongo que FlowLayoutPanel ignora las propiedades de Anchor de sus controles secundarios.

Para lograr este efecto, deberá cambiar manualmente el tamaño de sus controles secundarios en el evento SizeChanged de FlowLayoutPanel.

En este punto, es posible que desee reconsiderar si FlowLayoutPanel es realmente lo que desea utilizar. Si sabe que siempre quiere que un botón ocupe todo el ancho del FlowLayoutPanel, también puede pegarlo en un Panel y usar los anclajes, o establecer su propiedad Dock.

4

El control FlowLayoutPanel calcula el ancho de una columna implícita desde el control secundario más ancho de la columna. Todos los otros controles en esta columna con propiedades de anclaje o base están alineados o estirados para ajustarse a esta columna implícita. El comportamiento funciona de manera similar para direcciones de flujo horizontal. El control FlowLayoutPanel calcula la altura de una fila implícita desde el control secundario más alto en la fila, y todos los controles secundarios anclados o anclados en esta fila están alineados o dimensionados para ajustarse a la fila implícita.

verificación de documentación de MSDN aquí http://msdn.microsoft.com/en-us/library/ms171633.aspx

+0

No tiene que ser una opción como "FlowBreak", que le permite establecer la opción de cambio de tamaño para los controles individuales. Tengo una situación similar en la que hay un panel en particular dentro del conjunto general de controles que siempre quiero ocupar en todo el ancho, pero todavía quiero el diseño automático para todo lo demás. La configuración actual tengo que elegir una u otra ... Quiero ambas. –