我希望能够做到这样的事情,这样我就可以添加标签然后label1标签2 label3等我不能创建一个新标签或任何东西的数组,因为我的标签附有图像,必须保持某个位置也是如此。因此,制作一个新标签,其中包含一些文字作为标签,不会在我的表单上的任何地方出现,并没有多大用处。
List<Label> labels = new List<Label>();
for (int i = 0; i < 10; i++)
{
labels.Add(label + (i.ToString()));
}
答案 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);
}