web-dev-qa-db-fra.com

Ajout de contrôles à TableLayoutPanel dynamiquement pendant l'exécution

J'ai un TableLayoutPanel commençant par deux colonnes et 0 lignes. Ce que je dois faire est d'ajouter dynamiquement une ligne et de remplir les deux colonnes avec des contrôles différents (ce seront des panneaux). Dans Form1, je crée le TableLayout de cette façon:

TableLayoutPanel Table = new TableLayoutPanel();
Table.Location = new Point(10, 40);
Table.Size = new Size(620,100);
Table.AutoSize = true;
Table.Name = "Desk";
Table.ColumnCount = 2;
Table.RowCount = 0;
Table.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
Table.GrowStyle = System.Windows.Forms.TableLayoutPanelGrowStyle.AddRows;
this.Controls.Add(Table);

par la suite, pendant l'exécution, j'obtiens le nombre de lignes dont j'aurai besoin, et si elles seront remplies avec un panneau ou une étiquette. Il peut arriver que dans la même ligne se trouve à gauche Panel, Label droit etc.

28
Marek Buchtela

Utilisez quelque chose comme ceci:

Table.Controls.Add(new Label { Text = "Type:", Anchor = AnchorStyles.Left, AutoSize = true }, 0, 0);
Table.Controls.Add(new ComboBox { Dock = DockStyle.Fill }, 0, 1);

Vous n'avez pas besoin de définir le nombre de lignes et de colonnes, elles seront ajoutées automatiquement.

48
VladL