Walczyłem z tym od jakiegoś czasu i odkryłem, że wiele innych osób ma również problemy z TableLayoutPanel (.net 2.0 Winforms).
Problem
Usiłuję wziąć „pusty” tablelayoutpanel, który ma zdefiniowane 10 kolumn, a następnie programowo dodać wiersze kontrolek w czasie wykonywania (tj. Po jednej kontrolce na komórkę).
Można by pomyśleć, że powinno to 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 dodanie stylu wierszowego
myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Ale to też nie działa. Przekopałem się i odkryłem, że myTableLayoutPanel.RowCount
użycie zmienia się od czasu projektowania do czasu wykonywania, dlatego myTableLayoutPanel.RowCount++;
tak naprawdę nie dodaje to kolejnego wiersza, nawet przed / po dodaniu dla niego wpisu RowStyle!
Innym powiązanym problemem, z którym się spotykam, jest to, że kontrolki zostaną dodane do ekranu, ale wszystkie są po prostu renderowane w punkcie 0,0 TableLayoutPanel, a ponadto nie są nawet ograniczone tak, aby znajdowały się w granicach komórki, które powinny być wyświetlane w ramach (tj. z Dock = DockStyle.Fill nadal wydają się zbyt duże / małe).
Czy ktoś ma działający przykład dodawania wierszy i kontrolek w czasie wykonywania?