web-dev-qa-db-ja.com

実行時に動的にTableLayoutPanelにコントロールを追加する

2列と0行で始まるTableLayoutPanelがあります。私がする必要があるのは、行を動的に追加し、両方の列を異なるコントロールで埋めることです(パネルになります)。 Form1では、この方法でTableLayoutを作成しています。

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);

その後、実行中に必要な行数を取得し、それらの行にパネルまたはラベルのいずれかを入力します。同じ行の左がパネル、右のラベルなどになることがあります。

28
Marek Buchtela

次のようなものを使用します。

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

行と列の数を定義する必要はありません。それらは自動的に追加されます。

48
VladL