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 #.
| | |
| | |
| | |
|_______________________| |
| | |
| | |
| | |
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);
Puedes ver aquí el título de Merging Cells.
http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.aspx
Por ejemplo, puedes configurar RowSpan poperty en el control TableLayoutPanel.