Cuando creamos con el diseñador un TableLayoutPanel podemos indicar la cantidad de filas y columnas que deseamos tener. Pero esta cantidad puede cambiar durante la ejecución del programa, y sobre esto trata este post.
Para nuestro ejemplo, supondremos que tenemos un TableLayoutPanel llamado "panel" con dos filas, y queremos agregar una tercera. Agregar el control es fácil:
Label lbl = new Label();
lbl.setText( "Etiqueta de ejemplo" );
panel.Controls.Add( lbl, 0, 2 ); // Primera columna, tercera fila
Sin embargo, no veremos la tercera fila todavía. De nada sirve hacer panel.Rows = 3. El problema reside en la lista de RowStyles que contiene el layout: sigue creyendo que tiene dos filas, cada una con la altura indicada en el diseñador, y ocupando todo el espacio visual del Layout. Tendremos que regenerarlas, por ejemplo, haciendo:
panel.RowStyles.Clear();
for( int i=0; i != 3; ++i ) { // 3 filas
RowStyle rs = new RowStyle();
rs.Height = 20; // 20 píxeles
panel.RowStyles.Add( rs );
}
En realidad, no es necesario establecer manualmente una altura para cada fila. El siguiente código hace que se recalculen las alturas automáticamente:
panel.RowStyles.Clear();
for( int i=0; i != 3; ++i ) { // 3 filas
panel.RowStyles.Add( new RowStyle() );
}
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario