Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将控件数组动态添加到winform_C#_Winforms - Fatal编程技术网

C# 将控件数组动态添加到winform

C# 将控件数组动态添加到winform,c#,winforms,C#,Winforms,我有一个问题,我想向windows窗体动态添加一个控件数组,我已经准备了如下代码,但问题是窗体中显示的第一个控件只在控件集合中存在,而在窗体上没有显示。代码中缺少什么 代码: LinkLabel[]arrLbl=新的LinkLabel[5]; 对于(int i=0;i

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

代码:

LinkLabel[]arrLbl=新的LinkLabel[5];
对于(int i=0;i<5;i++)
{
LinkLabel lbl=新的LinkLabel();
lbl.Text=“Label:+i.ToString();
arrLbl[i]=lbl;
}
foreach(arrLbl中的控制c)
本.控件.添加(c);

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

我不知道您添加了什么类型的容器控件,但是考虑将它们添加到A,它将自动处理其子控件。

通过设置,可以选择是希望子控件垂直“流动”还是水平“流动”


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

您应该设置每个控件的位置属性。它们都在彼此上呈现。

我应该这样做吗:lbl[index].Location=new Point(x,y)。我以前试过,但对我不起作用!原因是什么?X是静态的,y通过如下循环被证明有罪:lbl.Location=新点(0,计数器+10);请你看一下我问的问题的代码好吗
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);