Esta documentación está archivada y no tiene mantenimiento.

TableLayoutPanel (Clase)

Representa un panel que dispone su contenido dinámicamente en una cuadrícula compuesta por filas y columnas.

Espacio de nombres: System.Windows.Forms
Ensamblado: System.Windows.Forms (en system.windows.forms.dll)

[ComVisibleAttribute(true)] 
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)] 
public class TableLayoutPanel : Panel, IExtenderProvider
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) */ 
public class TableLayoutPanel extends Panel implements IExtenderProvider
ComVisibleAttribute(true) 
ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch) 
public class TableLayoutPanel extends Panel implements IExtenderProvider
No aplicable.

El control TableLayoutPanel organiza su contenido en una cuadrícula. Puesto que el diseño se realiza en tiempo de diseño y en tiempo de ejecución, puede cambiar dinámicamente a medida que cambie el entorno de la aplicación. Esto ofrece a los controles del panel la posibilidad de cambiar de tamaño proporcionalmente, por lo que puede responder a cambios como el cambio de tamaño del control principal o el cambio de la longitud del texto debido a la adaptación.

Cualquier control de formularios Windows Forms puede ser un elemento secundario del control TableLayoutPanel, incluyendo otras instancias de TableLayoutPanel. Esto le permite construir diseños sofisticados que se adaptan a los cambios en tiempo de ejecución.

El control TableLayoutPanel puede expandirse para alojar nuevos controles a medida que se agreguen, dependiendo del valor de las propiedades RowCount, ColumnCount y GrowStyle. Establecer la propiedad RowCount o ColumnCount en un valor 0 especifica que TableLayoutPanel se desenlazará en la dirección correspondiente.

También puede controlar la dirección de expansión (horizontal o vertical) cuando el control TableLayoutPanel esté lleno de controles secundarios. De manera predeterminada, el control TableLayoutPanel se expande hacia abajo agregando filas.

Si desea que las filas y las columnas se comporten de manera diferente que el comportamiento predeterminado, puede controlar las propiedades de las filas y columnas utilizando las propiedades RowStyles y ColumnStyles. Puede establecer las propiedades de filas o columnas individualmente.

El control TableLayoutPanel agrega las propiedades siguientes a sus controles secundarios: Cell, Column, Row, ColumnSpan y RowSpan.

Puede combinar celdas del control TableLayoutPanel estableciendo las propiedades ColumnSpan o RowSpan en un control secundario.

El comportamiento de acoplamiento de los controles secundarios es el mismo que el de otros controles contenedores.

El comportamiento de anclaje de los controles secundarios de un control TableLayoutPanel difiere del de otros controles contenedores. Si el valor de la propiedad Anchor del control secundario se establece en Left o Right, el control se colocará contra el borde izquierdo o derecho de la celda, a una distancia que es la suma de la propiedad Margin del control y la propiedad Padding del panel. Si se establecen los dos valores Left y Right, se ajustará el tamaño del control al ancho de la celda, teniendo en cuenta los valores Margin y Padding. El comportamiento para el anclaje Top y Bottom es análogo. Para obtener más información, vea Cómo: Delimitar y acoplar controles secundarios en un control TableLayoutPanel.

Si necesita que un control secundario imite el comportamiento de anclaje predeterminado de otros controles contenedores, puede ajustar las propiedades Margin y Padding para mantener una distancia constante entre el borde de control y el borde de la celda.

En tiempo de ejecución, si se establecen los valores de ambas propiedades Column y Row de un control secundario en -1, el control se desplazará a la primera celda vacía del control TableLayoutPanel. La celda vacía se elegirá en una búsqueda que se realiza de izquierda a derecha y de la parte superior a la inferior. Este orden depende de la referencia cultural, por lo que se comportará correctamente en diseños de derecha a izquierda (RTL). En tiempo de diseño, los controles secundarios no se desplazan cuando estas propiedades se establecen en -1.

NotaNota:

Solamente los controles que tienen la propiedad Visible establecida en true participan en los cálculos de diseño del control TableLayoutPanel.

TemaUbicación
Tutorial: Organizar controles en formularios Windows Forms mediante TableLayoutPanelControles de formularios Windows Forms
Cómo: Editar columnas y filas en un control TableLayoutPanelControles de formularios Windows Forms
Cómo: Abarcar filas y columnas en un control TableLayoutPanelControles de formularios Windows Forms
Cómo: Alinear y expandir un control en un control TableLayoutPanelControles de formularios Windows Forms
Cómo: Alinear y expandir un control en un control TableLayoutPanelControles de formularios Windows Forms
Cómo: Abarcar filas y columnas en un control TableLayoutPanelControles de formularios Windows Forms
Cómo: Editar columnas y filas en un control TableLayoutPanelControles de formularios Windows Forms
Tutorial: Organizar controles en formularios Windows Forms mediante TableLayoutPanelControles de formularios Windows Forms
Cómo: Alinear y expandir un control en un control TableLayoutPanelControles de formularios Windows Forms
Cómo: Abarcar filas y columnas en un control TableLayoutPanelControles de formularios Windows Forms
Cómo: Editar columnas y filas en un control TableLayoutPanelControles de formularios Windows Forms
Tutorial: Organizar controles en formularios Windows Forms mediante TableLayoutPanelControles de formularios Windows Forms
Cómo: Alinear y expandir un control en un control TableLayoutPaneldv_mclictl
Cómo: Abarcar filas y columnas en un control TableLayoutPaneldv_mclictl
Cómo: Editar columnas y filas en un control TableLayoutPaneldv_mclictl
Tutorial: Organizar controles en formularios Windows Forms mediante TableLayoutPaneldv_mclictl

En el ejemplo de código siguiente se muestra cómo reemplazar el método OnCellPaint para crear una apariencia personalizada para una celda. Para obtener un ejemplo que utiliza el control TableLayoutPanel para crear diseños que respondan bien a los cambios de tamaño, vea Ejemplo TableLayoutPanel Control.

public class DemoTableLayoutPanel : TableLayoutPanel
{
	protected override void OnCellPaint(TableLayoutCellPaintEventArgs e)
	{
		base.OnCellPaint(e);

        Control c = this.GetControlFromPosition(e.Column, e.Row);

        if ( c != null )
        {
            Graphics g = e.Graphics;

            g.DrawRectangle(
				Pens.Red, 
				e.CellBounds.Location.X+1,
				e.CellBounds.Location.Y + 1,
				e.CellBounds.Width - 2, e.CellBounds.Height - 2);

			g.FillRectangle(
				Brushes.Blue, 
				e.CellBounds.Location.X + 1, 
				e.CellBounds.Location.Y + 1, 
				e.CellBounds.Width - 2, 
				e.CellBounds.Height - 2);
        };
	}
    
}

System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Windows.Forms.Control
         System.Windows.Forms.ScrollableControl
           System.Windows.Forms.Panel
            System.Windows.Forms.TableLayoutPanel
               System.ComponentModel.Design.ByteViewer

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows 98, Windows 2000 Service Pack 4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0
Mostrar: