2012-02-17 10 views
7

he crear un formulario C# winforms,winforms ajustar los controles para empujar hacia arriba verticalmente cuando otros son invisibles

Tiene un montón de etiquetas posicionadas y un FlowLayoutPanel.

en ciertas ocasiones configuré una de las etiquetas y el panel flowlayout en visible = falso.

Como resultado, quiero que todas las etiquetas debajo de ellas se levanten, por el momento hay un espacio donde estaban.

Además, me gustaría que el panel flowlayout crezca y disminuya según la cantidad de elementos que tenga. por el momento es solo el tamaño que configuré para estar en el diseñador.

por favor pueden ayudar con estos 2 problemas.

Gracias

+0

puede usar algunos paneles para dividir su formulario, luego ocultar cada panel que se necesite y usar la propiedad dock.fill. cuando ocultes un panel, los otros dos llenarán el espacio vacío que queda. – vulkanino

Respuesta

8

Si te tengo correctamente, se recomienda usar un TableLayoutPane con dos filas. La fila superior contendrá un panel acoplado con todos los controles que pueden estar ocultos. La fila inferior contendrá un panel acoplado con todo el resto.

Establezca SizeType de la fila superior en AutoSize y la fila inferior en 100%.

Cuando desee ocultar los controles, establezca la propiedad Visible del panel superior en falso. Ahora, debido a que la fila superior es de tamaño automático, se reducirá a nada, haciendo que la fila inferior "salte" hacia arriba.

+0

No lo tengo: ¿cómo puedo establecer las propiedades de una fila? No parece estar en las ventanas de propiedades ni en el elemento emergente «tableLayoutPanel». –

+0

Solo para agregar una cosa, porque intenté con lo que sugirió, pero no funcionó hasta que configuré 'AutoSizeMode =" GrowAndShrink "' para TableLayoutPanel –

1

El TableLayoutPanel lo empuja. Tal vez puedas usar eso si no hay una mejor respuesta en la próxima.

0

Primer problema: Puede usar paneles simples para dividir su formulario, asígneles la propiedad dock.fill. cuando ocultes un panel mediante programación, los otros paneles llenarán el espacio vacío que queda.

Segundo problema: Tienes que establecer la propiedad Autosize en true.

Cuestiones relacionadas