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

标签 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

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

最佳答案

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

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

关于c# - 在 .NET 窗体中向 TableLayoutPanel 添加动态控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42840406/

相关文章:

c# - WCF 服务与窗口服务

c# - 如何测试mySql数据库是否正常工作?

.net - 无需外部库即可生成自签名证书

c# - 登录 session 未使用 WebRequest/Response 转移到新网页?

c# - Windows 操作中心 Toast 激活

C# 窗体 : Is there any way to improve this simple custom Textbox code?

c# - 从网站获取 "real"HTML 源

c# - 数据网格单元格行点击事件

c# - Windows Phone 7 开发中 UITableView 的等价物是什么?

c# - 匹配 img 标签 url 的正则表达式