以 .NET windows 形式向 TableLayoutPanel 添加动态控件

Adding dynamic controls to TableLayoutPanel in .NET windows form

我想在单击按钮时向面板动态添加控件。但是我想整理位置。例如,我想让两个文本框并排放置,宽度相等,面板的 space 相等。见下图。

如上图所示,当点击按钮时,会添加控件。但是我在使用 TableLayoutPanel 时遇到问题。请参阅下面的代码。

private void btnAddOption_Click(object sender, EventArgs e)
        {
            TextBox tb1 = new TextBox();
            tb1.Text = "Cell 1";
            TextBox tb2 = new TextBox();
            tb2.Text = "Cell 2";


            TableLayoutPanel rowLayout = new TableLayoutPanel();
            rowLayout.ColumnCount = 2;
            rowLayout.RowCount = 1;

            //want to add tb1 to cell 1 and tb2 to cell 2 of TableLayoutPanel         

            panelFoodOptions.Controls.Add(rowLayout);

        }

正如您在我的代码中看到的,我注释了我想做的事情。这些是我的问题。

我试过了

rowLayout.Controls.Add(tb1);
rowLayout.Controls.Add(tb2);

所以上面的方法是行不通的。所以我尝试了一种获取布局单元格的方法。但我遇到了问题。见下图。

正如您在屏幕截图中看到的,我必须通过子控件才能获取单元格。但是我什至没有向单元格添加控件。我想将控件添加到获取其各自位置的单元格中。如何向我想要的单元格添加控件?

你只需要使用Controls.Add方法并指定控件的列和行:

rowLayout.Controls.Add(tb1, 0, 0);
rowLayout.Controls.Add(tb2, 0, 1);