动态删除 TableLayoutPanel 的某一行
说明:TableLayoutPanel 动态删除一行要修改三处地方:
1.删除该行单元格内的控件
2.删除该行样式
3.设置行数量-1
如果只删除了行样式和行数量, 没有删除里面的控件,一样达不到删除效果。另外,改行删除后,改行位置会变成空白。需要将后面的行依次向上移动。
private void tableDeleteRow(TableLayoutPanel tableLayoutPanel1, int row)
{
int column = tableLayoutPanel1.ColumnCount;
// 删除该行单元格中的控件
Control control;
for (int j = 0; j < column; j++)
{
control = tableLayoutPanel1.GetControlFromPosition(j, row);
tableLayoutPanel1.Controls.Remove(control);
}
// 删除该行样式
tableLayoutPanel1.RowStyles.RemoveAt(row);
// 行数设置 - 1
tableLayoutPanel1.RowCount = tableLayoutPanel1.RowCount - 1;
}
TableLayoutPanel 动态添加行列
//添加行 横排
++this.tbPnl.RowCount;
this.tbPnl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
++this.tbPnl.RowCount;
this.tbPnl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
++this.tbPnl.RowCount;
this.tbPnl.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
//添加列 竖排
++this.tbPnl.ColumnCount;
this.tbPnl.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
foreach (IPlugin plugin in plugins)
{
Label a = new Label();
a.Text =plugin.Text;
a.Anchor = System.Windows.Forms.AnchorStyles.None;
this.tbPnl.Controls.Add(a, 0, 0);
}