una tablas tabla sirve rowspan que paso para filas etiqueta ejemplos diseño crear como combinar colspan avanzado c# winforms c#-4.0 tablelayoutpanel

c# - tablas - Cómo combinar dos celdas en el diseño de tabla



tablas en html ejemplos (8)

Tengo dos filas y dos columnas. Quiero que la última columna de ambas celdas se fusione en una sola. Debido a los requisitos, no uso otras opciones de diseño significa dos mesas de juego en las que la primera disposición de la tabla tiene dos filas. Estoy usando Winforms en C #.

| | | | | | | | | |_______________________| | | | | | | | | | |


  1. Ponga cualquier control en una celda en el diseñador de formas
  2. Seleccione el control y vea sus propiedades.
  3. Busque la propiedad "ColumnSpan" en la sección "Diseño"
  4. Introduzca el intervalo de columna deseado para este valor

Vea la imagen para la ilustración:


Aquí está cómo hacerlo en código.

//create a label control, add it to the tableLayoutPanel, and merge it into 3 cells. Label lbl = new Label(); lbl.Location = new Point(0, 0); lbl.Text = "This is a test label"; MyTableLayoutPanel.Controls.Add(lbl, 0,0); //start it in cell 0,0 MyTableLayoutPanel.SetColumnSpan(lbl, 3); //merge 3 columns


El siguiente código debería permitirle abarcar un control a través del número deseado de filas / columnas

TableLayoutPanel tableLayoutPanel1 = new TableLayoutPanel(); // not required if you already have the control added else where or in designer. TextBox textBox1 = new TextBox(); // not required if you already have the control added else where or in designer. tableLayoutPanel1.Controls.Add(textBox1);// not required if you already have the control added else where or in designer. tableLayoutPanel1.SetColumnSpan(textBox1, 2); tableLayoutPanel1.SetRowSpan(textBox1, 2);


En lugar de establecer la propiedad ColumnSpan / RowSpan , puede agregar un http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.aspx dentro de la celda de otro http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.aspx . En lugar de fusionar dos celdas, estás dividiendo dos celdas. En el ejemplo que proporciona en su pregunta, dividiría la columna de la izquierda en dos filas, en lugar de fusionar la columna de la derecha en una fila.

Este método solo es ventajoso si planea establecer la propiedad CellBorderStyle en algo distinto a " None ". Encontré esta respuesta here , donde CSharpFreak también sugiere otro método, que no probé.


Establezca la propiedad RowSpan del control en la celda que iniciará la combinación en la tabla. es decir, RowSpan de 3 hará que el control llene su celda y las 2 celdas a continuación.

ColumnSpan para fusionar a la derecha.

En el código, llame al método SetRowSpan y / o SetColumnSpan.


Puede establecer dicha propiedad de "fusión" en el Control:

Digamos que el control es una Label y que desea combinar filas, entonces puede hacerlo de la siguiente manera:

TableLayoutPanel table = new TableLayoutPanel(); Label lbl = new Label(); lbl.Text = "test"; lbl.Dock = DockStyle.Fill; table.Controls.Add(lbl, 0, 0); //initial position table.SetRowSpan(lbl,2);