使用 C# 在运行时启用一系列连续命名的 Label 控件
Enable at runtime a series of serially named Label controls using c#
我有一些标签控件,名称如下:
Label1、Label2、Label3.......Label14,在设计时禁用。
现在我想以下列方式使用 for 循环启用它们
for(int i=1;i<15;i++)
{
(Label+i).Enabled = true;
}
显然上面的代码无法编译。
Label1.Enabled = true;
Label2.Enabled = true;
Label3.Enabled = true;
...........
Label14.Enabled = true;
除了刚才提到的方法之外,还有其他方法可以达到预期的效果吗above.Hope我提前给自己clear.Please建议code.Thanks
您可以将标签放入列表中并遍历该列表:
List<Label> myLabels = new List<Label> { Label1, Label2, /*...*/ Label14};
foreach(Label lbl in myLabels) lbl.Enabled = true;
如果这些是您 Form
中唯一的标签,您也可以这样做:
foreach(Label lbl in this.Controls.OfType<Label>())
lbl.Enabled = true;
这会遍历 Form
中的所有(顶级)控件,并采用所有类型 Label
将 Enabled
设置为 true
。
您可以将它们粘贴到 Enumerable
中,然后使用 foreach
遍历它们。
List<Label> lblList = new List<Label> { Label1, Label2, Label3, Label4 };
foreach (Label label in lblList)
{
label.Enabled = true;
}
要获得更简洁的解决方案,您可以使用以下语法。
lblList.ForEach(x => x.Enabled = true);
您可以从 parent 的 Controls
集合中按名称获取控件
for(int i = 1; i < 15; i++)
{
Control label = this.Controls["Label"+i];
if (label != null)
label.Enabled = true;
}
在此示例中,this
指的是表单。如果标签属于另一个 parent 控件(例如 Panel 或 GroupBox),则应使用它而不是 this
我有一些标签控件,名称如下: Label1、Label2、Label3.......Label14,在设计时禁用。 现在我想以下列方式使用 for 循环启用它们
for(int i=1;i<15;i++)
{
(Label+i).Enabled = true;
}
显然上面的代码无法编译。
Label1.Enabled = true;
Label2.Enabled = true;
Label3.Enabled = true;
...........
Label14.Enabled = true;
除了刚才提到的方法之外,还有其他方法可以达到预期的效果吗above.Hope我提前给自己clear.Please建议code.Thanks
您可以将标签放入列表中并遍历该列表:
List<Label> myLabels = new List<Label> { Label1, Label2, /*...*/ Label14};
foreach(Label lbl in myLabels) lbl.Enabled = true;
如果这些是您 Form
中唯一的标签,您也可以这样做:
foreach(Label lbl in this.Controls.OfType<Label>())
lbl.Enabled = true;
这会遍历 Form
中的所有(顶级)控件,并采用所有类型 Label
将 Enabled
设置为 true
。
您可以将它们粘贴到 Enumerable
中,然后使用 foreach
遍历它们。
List<Label> lblList = new List<Label> { Label1, Label2, Label3, Label4 };
foreach (Label label in lblList)
{
label.Enabled = true;
}
要获得更简洁的解决方案,您可以使用以下语法。
lblList.ForEach(x => x.Enabled = true);
您可以从 parent 的 Controls
集合中按名称获取控件
for(int i = 1; i < 15; i++)
{
Control label = this.Controls["Label"+i];
if (label != null)
label.Enabled = true;
}
在此示例中,this
指的是表单。如果标签属于另一个 parent 控件(例如 Panel 或 GroupBox),则应使用它而不是 this