Winforms TableLayoutPanel programowo dodając wiersze
Walczę z tym od jakiegoś czasu i odkryłem, że wielu innych ludzi zmaga się również z TableLayoutPanel (.net 2.0 Winforms).
Problem
Próbuję zrobić „pusty” tablelayoutpanel, który ma zdefiniowane 10 kolumn, a następnie w czasie wykonywania programowo dodać wiersze kontrolek (tj. Jedną kontrolkę na komórkę).
Można by pomyśleć, że powinno być tak proste, jak
myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */);
Ale to (dla mnie) nie dodaje wierszy. Więc może dodając styl w rzędzie
myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Ale to też nie działa. Wykopałem i dowiedziałem się, żemyTableLayoutPanel.RowCount
w związku z tym zmiany użycia od czasu projektowania do czasu uruchomieniamyTableLayoutPanel.RowCount++;
tak naprawdę nie dodaje kolejnego wiersza, nawet przed dodaniem do niego wpisu RowStyle!
Kolejnym związanym z tym problemem jest to, że kontrolki zostaną dodane do ekranu, ale wszystkie po prostu są renderowane w punkcie 0,0 tabeli TableLayoutPanel, dodatkowo nie są nawet ograniczone do bycia w granicach komórki, które mają być wyświetlane wewnątrz (np. z Dock = DockStyle. Wypełnij je nadal zbyt duże / małe).
Czy ktoś ma działający przykład dodawania wierszy i formantów w czasie wykonywania?