Я боровся з цим деякий час, і виявив, що ряд інших людей також борються з TableLayoutPanel (.NET 2.0 Winforms).
Проблема
Я намагаюся взяти "порожню" панель 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. Заповнення вони все ще здаються занадто великими / малими).
Хтось має робочий приклад додавання рядків та елементів керування під час виконання?