C# 在TableLayoutPanel中动态添加控件

C# 在TableLayoutPanel中动态添加控件,c#,winforms,tablelayoutpanel,toolbox,C#,Winforms,Tablelayoutpanel,Toolbox,我正在尝试使用winform复制此excel表: 在windows窗体中,我可以通过以下操作动态添加控件: for (int i = 0; i < 5; i++) { Button button = new Button(); button.Location = new Point(160, 30 * i + 10); button.Tag = i; this.Controls.Add(button); } for(int i=0;i

我正在尝试使用
winform
复制此excel表:

在windows窗体中,我可以通过以下操作动态添加控件:

for (int i = 0; i < 5; i++)
{
Button button = new Button();
button.Location = new Point(160, 30 * i + 10);

button.Tag = i;
this.Controls.Add(button);
}
for(int i=0;i<5;i++)
{
按钮按钮=新按钮();
按钮位置=新点(160,30*i+10);
标签=i;
此.Controls.Add(按钮);
}

如何在
表格布局面板中动态添加控件,同时保留所有
文本框
控件并循环遍历每个记录?

for(int r=0;r
。您确定TableLayoutPanel是正确的选择吗?处理数据中的更改并不容易(因为我假设您使用的是文本框而不是标签…)。还有其他控件可以在网格中显示数据,并允许您设计自定义视图,同时保留与数据源的连接。您好@Jimi,我可以使用
ListView
无缝显示数据,但它不允许自定义excel表。。。您有什么建议吗?没有标准控件可以在WinForms中复制电子表格的布局。您可以使用DataGridView,但不要考虑这种演示,除非您想用CellPaint、RowPrePaint/RowPostPaint等弄脏您的手。您可以找到一些实现此功能的开源控件(在一定程度上)。但是,这种布局通常用于演示,而不是交互(修改数据)。如果您只需要显示数据,那么当然可以使用TableLayoutPanel。如果选择TLP,则必须预过滤数据以生成分组,然后确定哪个控件跨越多行或多列。在这种情况下很难支持数据更改(除非非常简单,针对特定的、绑定的控件)。依我看,最好只是为了展示而使用这种布局(数据展示,而不是编辑)。
for (int i = 0; i < 5; i++)
{
Button button = new Button();
button.Location = new Point(160, 30 * i + 10);

button.Tag = i;
this.Controls.Add(button);
}