【发布时间】:2015-06-10 19:53:45
【问题描述】:
我已将所有控件放在一个面板中。在运行时,我想将控件添加到表格布局面板中。为此,我编写了以下代码。
void arrangeTableLayout()
{
int rowcount = 1;
tblPanel.ColumnCount=2;
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
for (int i = 0; i < panel.Controls.Count; i++)
{
if (panel.Controls[i].Visible)
{
tblPanel.Controls.Add(panel.Controls[i], 0, rowcount);
tblPanel.Controls.Add(panel.Controls[i + 1], 1, rowcount);
tblPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
i++;
rowcount++;
}
}
}
在控件数组中,控件是我需要的。但是上面的代码只在一列中添加了标签。
谁能告诉我如何将窗体控件动态添加到表格布局面板中。
【问题讨论】:
-
您正在将控件从面板移动到 tblPanel。这会修改 panel.Controls 集合。所以 panel.Controls[i+1] 并不是你想的那样,它是 panel.Controls[i] 之后的第二个控件。
-
是的。如果我检查该控制面板的名称。Controls[i+1].Name 只为我而来的正确名称。但它没有添加。
标签: c# tablelayoutpanel