天天看点

c# winform TableLayoutPanel 动态 删除一行

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