Я боролся с этим некоторое время, и обнаружил, что ряд других людей также борются с TableLayoutPanel (.net 2.0 Winforms).
Проблема
Я пытаюсь взять «пустую» табличную табличную панель с 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. Заполните, они все еще кажутся слишком большими / маленькими).
Есть ли у кого-нибудь рабочий пример добавления строк и элементов управления во время выполнения?