Сейчас пробую так
TableLayoutPanel tocopy = mainpanel.Controls[0] as TableLayoutPanel;
TableLayoutPanel copied = new TableLayoutPanel();
copied.ColumnCount = tocopy.ColumnCount;
copied.RowCount = tocopy.RowCount;
// заполнение данными
for (int row = 0; row < tocopy.RowCount; row++)
{
for (int col = 0; col < tocopy.ColumnCount; col++)
{
if (tocopy.GetControlFromPosition(col, row)!=null)
copied.Controls.Add(tocopy.Controls[col], col, row);
}
}
и в итоге индекс выходит за пределы массива
Если вопрос актуален то можно так сделать
private void button1_Click(object sender, EventArgs e)
{
var y = new TableLayoutPanel()
{
RowCount = tableLayoutPanel1.RowCount,
ColumnCount = tableLayoutPanel1.ColumnCount,
Height = tableLayoutPanel1.Height,
Width = tableLayoutPanel1.Width
};
for (int i = 0; i < tableLayoutPanel1.RowCount; i++)
{
RowStyle styleR = tableLayoutPanel1.RowStyles[i];
y.RowStyles.Add(new RowStyle(styleR.SizeType, styleR.Height));
for (int j = 0; j < tableLayoutPanel1.ColumnCount; j++)
{
ColumnStyle styleC = tableLayoutPanel1.ColumnStyles[j];
y.ColumnStyles.Add(new ColumnStyle(styleC.SizeType, styleC.Width));
}
}
var w = tableLayoutPanel1.Controls;
for (int i = w.Count - 1; i >= 0; i--)
{
var c = w[i];
y.Controls.Add(c, tableLayoutPanel1.GetColumn(c), tableLayoutPanel1.GetRow(c));
}
y.CellBorderStyle = TableLayoutPanelCellBorderStyle.Single;
panel1.Controls.Add(y);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Как Сохранить таблицу из БД SQL-Server на компе и какие способы существуютА затем при необходимости синхронизировать эти таблицы (таблицы на сервере...