在.NET Windows表单中向TableLayoutPanel添加动态控件。

3

当单击按钮时,我希望能够动态向面板添加控件。但我想要组织位置。例如,我想要两个文本框并排,宽度相等,占据面板的相等空间。请参见下面的图片。

enter image description here

正如您在上面的图片中看到的那样,当按钮被点击时,控件将被添加。但是我在使用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);

以上方法不起作用。因此,我尝试了一种获取布局单元格的方法。但是我遇到了一个问题。请参见下面的图片。

enter image description here

正如您在截图中所看到的,我必须传递子控件才能获取单元格。但是我甚至还没有将控件添加到单元格中。我想将控件添加到获取其相应位置的单元格中。我该如何将控件添加到我想要的单元格中?

如何使用Windows Forms创建一个幻方? - Reza Aghaei
1个回答

3

您只需要使用Controls.Add方法,并为控件指定列和行:

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

1
@WaiYanHein,欢迎,下次记得检查你正在使用的方法的重载形式 :) - Selman Genç

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接