TableLayoutPanel – Controls hinzufügen und löschen

private void AddButton(int iCol, int iRow, string sCaption, string sName)
{
    Button b = new Button();

    b.Text = sCaption;
    b.Name = sName;

    // Button der Controlliste hinzufügen
    tableLayoutPanel1.Controls.Add(b, iCol, iRow);
}

// Control aus einer best. Zelle löschen
private void DelControl(int iCol, int iRow)
{
    // alle Controls des TableLayoutPanels durchgehen und prüfen
    for (int i = tableLayoutPanel1.Controls.Count - 1; i ->= 0; i--)
    {
        if (tableLayoutPanel1.GetColumn(tableLayoutPanel1.Controls[i]) == iCol)
        {
            if (tableLayoutPanel1.GetRow(tableLayoutPanel1.Controls[i]) == iRow)
            {
                // wenn das Control gefunden wurde, dann aus der Liste löschen
                tableLayoutPanel1.Controls.RemoveAt(i);
            }
        }
    }
}

alle Zellen eines TableLayoutPanels löschen

private void ClearGrid()
{
    // alle Controls weglöschen
    tableLayoutPanel1.Controls.Clear();
    // Spaltenanzahl wieder auf 1 setzen
    tableLayoutPanel1.ColumnCount = 1;
    // Zeilenanzahl wieder auf 1 setzen
    tableLayoutPanel1.RowCount = 1;
    // Styledefinitionen für Spalten löschen
    tableLayoutPanel1.ColumnStyles.Clear();
    // Styledefinitionen für die erste Spalte neu setzen
    tableLayoutPanel1.ColumnStyles.Add(new ColumnStyle(SizeType.AutoSize));
    // Styledefinitionen für Zeilen löschen
    tableLayoutPanel1.RowStyles.Clear();
    // Styledefinitionen für die erste Zeile neu setzen
    tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
}