C# 在C中为我的所有标签创建Foreach循环#
我正在尝试将所有标签的背景色设置为黑色,但如果设置为黑色,则会显示如下:C# 在C中为我的所有标签创建Foreach循环#,c#,foreach,label,background-color,C#,Foreach,Label,Background Color,我正在尝试将所有标签的背景色设置为黑色,但如果设置为黑色,则会显示如下: lable0.BackColor = Color.Black; lable1.BackColor = Color.Black; 还有108次。所以我想知道是否有一种方法可以使用foreach循环,如: int[] labels = new int[] {1, 2, 3...110}; foreach (int i in labels) { label.BackColor = Color.Black; } 如
lable0.BackColor = Color.Black;
lable1.BackColor = Color.Black;
还有108次。所以我想知道是否有一种方法可以使用foreach循环,如:
int[] labels = new int[] {1, 2, 3...110};
foreach (int i in labels)
{
label.BackColor = Color.Black;
}
如果您的标签是表单的直接子级(我假设这是winforms),这应该适用于您:
foreach(在this.Controls.OfType()中标记lbl)
{
lbl.BackColor=颜色。黑色;
}
如果您的标签是表单的直接子级(我假设这是winforms),那么这应该适用于您:
foreach(在this.Controls.OfType()中标记lbl)
{
lbl.BackColor=颜色。黑色;
}
Winforms控件是分层的,因此需要递归遍历它们以查找所有标签:
public static IEnumerable<Control> WalkControls(this Control topControl)
{
if (topControl == null)
yield break;
yield return topControl;
foreach (var child in topControl.Controls.OfType<Control>())
foreach (var subChild in WalkControls(child))
yield return subChild;
}
public static void SetControlTreeBackColor<TControl>(Control topControl, Color color) where TControl : Control
{
foreach (var childControl in topControl.WalkControls().OfType<TControl>())
childControl.BackColor = color;
}
公共静态IEnumerable WalkControl(此控件为topControl)
{
如果(topControl==null)
屈服断裂;
收益率控制;
foreach(topControl.Controls.OfType()中的var子级)
foreach(WalkControls中的var子级(子级))
收益子代;
}
公共静态void SetControlTreeBackColor(控件topControl,颜色颜色),其中TControl:Control
{
foreach(topControl.WalkControls()中的var childControl()类型()
childControl.BackColor=颜色;
}
在这里,您可以使用“标签”来表示“TControl”。Winforms控件是分层的,因此您需要递归地遍历它们以查找所有标签:
public static IEnumerable<Control> WalkControls(this Control topControl)
{
if (topControl == null)
yield break;
yield return topControl;
foreach (var child in topControl.Controls.OfType<Control>())
foreach (var subChild in WalkControls(child))
yield return subChild;
}
public static void SetControlTreeBackColor<TControl>(Control topControl, Color color) where TControl : Control
{
foreach (var childControl in topControl.WalkControls().OfType<TControl>())
childControl.BackColor = color;
}
公共静态IEnumerable WalkControl(此控件为topControl)
{
如果(topControl==null)
屈服断裂;
收益率控制;
foreach(topControl.Controls.OfType()中的var子级)
foreach(WalkControls中的var子级(子级))
收益子代;
}
公共静态void SetControlTreeBackColor(控件topControl,颜色颜色),其中TControl:Control
{
foreach(topControl.WalkControls()中的var childControl()类型()
childControl.BackColor=颜色;
}
在这里,您可以使用“Label”来表示“TControl”。您可以简单地创建一个标签数组,然后使用foreach循环遍历这些标签吗?表单的背景色是什么?控件是我的表单背景色您可以使用字符串连接来获得它们,如下所示:
this.Controls[“Label”+i]
。当然,您必须将其转换为标签。可能重复:@hus274如果没有110条Add语句,他会怎么做?你能简单地创建一个标签数组,然后使用foreach循环遍历这些标签吗?你的表单的背景色是什么?控件是我的表单背景色你可以使用字符串连接来获得它们,如下所示:this.Controls[“标签”+i]
。当然,您必须将其转换为标签。可能的重复:@hus274如果没有110条Add语句,他会怎么做?+1
,这当然假设您希望更改表单上的每个标签,而不仅仅是一组特定的标签。可以轻松修改,以便仅将BackColor
应用于特定的ficLabel
s,如果需要的话。@MikeChristensen哇,有更多的(超过108个)吗 ? :p@Jblayone它不起作用,什么都不告诉我们。您是否使用System.Linq;
指令添加了?+1
,这当然假设您想要更改表单上的每个标签,而不仅仅是一组特定的标签。如果需要,可以轻松修改,以便仅将背景色应用于特定的标签
。@MikeChristensen哇,是否有更多(超过108个)?:p@Jblayone它不起作用了,什么都不告诉我们。您是否使用System.Linq;
指令添加了?