在.NET窗体中向TableLayoutPanel添加动态控件

时间:2017-03-16 17:01:35

标签: c# .net winforms tablelayoutpanel

我想在单击按钮时动态地向面板添加控件。但我想组织这些职位。例如,我希望两个文本框的宽度相等,采用相等的面板空间。见下图。

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

正如您在屏幕截图中看到的,我必须通过子控件来获取单元格。但我甚至没有给细胞添加控制。我想将控件添加到单元格中获取其各自的位置。如何将控件添加到我想要的单元格?

1 个答案:

答案 0 :(得分:1)

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

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