Je me bats avec ce problème depuis un certain temps, et j'ai constaté qu'un certain nombre d'autres personnes se débattent également avec le TableLayoutPanel (.net 2.0 Winforms).
Problème
J'essaie de prendre une tablelayoutpanel "vierge", qui a 10 colonnes définies, puis, au moment de l'exécution, d'ajouter par programmation des rangées de contrôles (c'est-à-dire un contrôle par cellule).
On aurait pu penser que cela serait aussi simple que
myTableLayoutPanel.Controls.Add(myControl, 0 /* Column Index */, 0 /* Row index */);
Mais cela (pour moi) n'ajoute pas les rangées. Alors peut-être qu'en ajoutant un style de ligne
myTableLayoutPanel.RowStyles.Clear();
myTableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 30F));
Mais ça ne marche pas non plus. J'ai creusé un peu et j'ai découvert que la fonction myTableLayoutPanel.RowCount
L'utilisation change entre le moment de la conception et celui de l'exécution. myTableLayoutPanel.RowCount++;
n'ajoute pas réellement une autre ligne, même pas avant/après avoir ajouté une entrée RowStyle pour celle-ci !
Un autre problème connexe que je rencontre est que les contrôles seront ajoutés à l'affichage, mais ils sont simplement rendus au point 0,0 du TableLayoutPanel, de plus ils ne sont même pas contraints d'être dans les limites de la cellule dans laquelle ils sont censés être affichés (c'est-à-dire avec Dock = DockStyle.Fill ils apparaissent toujours beaucoup trop grands/petits).
Quelqu'un a-t-il un exemple fonctionnel d'ajout de lignes et de contrôles au moment de l'exécution ?