向winform动态添加控件数组

时间:2012-02-21 07:27:33

标签: c# winforms

我有一个问题,我想动态地向windows窗体添加一个控件数组,我已经编写了如下代码,但问题是只有控件集合中存在的表单中的第一个控件显示但是没有在表格上显示。代码中缺少什么?

代码:

LinkLabel[] arrLbl = new LinkLabel[5];

for (int i = 0; i < 5; i++)
{
   LinkLabel lbl = new LinkLabel();
   lbl.Text = "Label: " + i.ToString();
   arrLbl[i] = lbl;
}

foreach (Control c in arrLbl)
  this.Controls.Add(c);

2 个答案:

答案 0 :(得分:15)

您的代码是正确的。问题很可能是您添加的所有控件都只是堆叠在一起,导致您只看到顶部的控件。

我不知道您要将它们添加到哪种类型的容器控件中,但请考虑将它们添加到FlowLayoutPanel,它将自动处理其子控件。

您可以通过设置FlowDirection property来选择是否希望子控件垂直或水平“流动”。

如果您不想使用FlowLayoutPanel(或其他智能容器控件),则必须手动设置每个子控件的Location property

答案 1 :(得分:1)

你应该设置每个控件的Location属性。它们都是相互渲染的。