如何在for循环中为列表添加多个标签?

时间:2016-05-27 09:42:11

标签: c# .net

我希望能够做到这样的事情,这样我就可以添加标签然后label1标签2 label3等我不能创建一个新标签或任何东西的数组,因为我的标签附有图像,必须保持某个位置也是如此。因此,制作一个新标签,其中包含一些文字作为标签,不会在我的表单上的任何地方出现,并没有多大用处。

List<Label> labels = new List<Label>();

for (int i = 0; i < 10; i++)
{
    labels.Add(label + (i.ToString()));    
}

3 个答案:

答案 0 :(得分:0)

以下是代码示例:

您需要将标签添加到标签页的Controls集合中:

Page2.Controls.Add(CustomLabel[CustomLabel.Count - 1] as Control);

List<Label> customLabels = new List<Label>();

foreach (string ValutaCustomScelta in Properties.Settings.Default.ValuteCustom)
{
    Label label = new Label();
    label.Location = new System.Drawing.Point(317, 119 + customLabels.Count*26);
    label.Parent = Page2;
    label.Name = "label" + ValutaCustomScelta;
    label.Text = ValutaCustomScelta;
    label.Size = new System.Drawing.Size(77, 21);
    customLabels.Add(label);
    Page2.Controls.Add(label);
}

答案 1 :(得分:0)

您是否按代码或设计添加了标签?

如果您按代码添加它们,只需将它们添加到列表中即可。

如果您按设计添加它们,则有两种选择。它们都在同一个容器(面板,表格,组合框......)上,或者它们不在。

如果他们是你可以:

for each(control ctr in $yourcontainer.controls)
{
    if(ctr is Label)
    {
        labels.add(ctr);
    }
}

如果它们不在同一个容器中,您可以通过硬编码

添加它们
labels.add(%label1name);
labels.add(%label2name);
labels.add(%label3name);
labels.add(%label4name); 

但如果它们太多,您可以先为每个面板运行代码

答案 2 :(得分:0)

您可以按名称从Labels添加Form到列表:

List<Label> labels = new List<Label>();
for (int i = 0; i < 10; i++)
{
    var label = 
        this.Controls.OfType<Label>().Where(lb => lb.Name == "label" + i).FirstOrDefault();
    if (label != null)
        labels.Add(label);
}