Я некоторое время сражался с этим, и обнаружил, что многие другие люди также борются с TableLayoutPanel (.net 2.0 Winforms).Winforms TableLayoutPanel добавляет строки программным способом
Проблема
Я пытается принять «пустой» TableLayoutPanel, который имеет 10 столбцов, определенных, а затем во время выполнения программно добавить строки элементов управления (т.е. один элемент управления на клетку).
Можно было бы подумать, что это должно быть так же просто, как
myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */);
Но это (для меня) не добавляет строки. Так что, возможно, добавление в строку стиля
myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Но это тоже не работает. Я выкопался и узнал, что использование myTableLayoutPanel.RowCount
изменяется от времени разработки до времени выполнения, поэтому myTableLayoutPanel.RowCount++;
фактически не добавляет еще одну строку, даже до и после добавления в нее записи RowStyle!
Другая проблема, с которой я сталкиваюсь, заключается в том, что элементы управления будут добавлены на дисплей, но все они просто получают визуализацию в точке 0,0 таблицы TableLayoutPanel, кроме того, они даже не ограничены, чтобы быть в пределах ячеек, что они должны отображаться внутри (то есть с Dock = DockStyle.Fill они все еще выглядят слишком большими/маленькими).
У кого-нибудь есть рабочий пример добавления строк & элементов управления во время выполнения?
Добавление RowStyle на самом деле увеличит значение RowStyles.Count() –