动态删除 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;
}

参考:​https://www.fengyunxiao.cn">​https://www.fengyunxiao.cn​