gpt4 book ai didi

c# - 如何通过单击按钮更改所有标签前景色

转载 作者:太空宇宙 更新时间:2023-11-03 21:15:40 25 4
gpt4 key购买 nike

我想创建一个按钮,单击按钮即可更改标签的前景色。但是每当我单击按钮时,它只会更改不在面板中的标签的前景色。这是我的代码:

private void button1_Click(object sender, EventArgs e)
{
this.BackColor = Color.White;
foreach(Control l in Controls)
{
if(l is Label)
{
l.ForeColor = Color.Black;
}
}
}

我试过用

private void button1_Click(object sender, EventArgs e)
{
this.BackColor = Color.White;
foreach(Label l in Controls)
{
l.ForeColor = Color.Black;
}
}

但它给了我一个错误,说它无法将 System.Windows.Forms.Panel 类型的对象转换为类型 System.Windows.Forms.Label

最佳答案

您可以使用 Linq 过滤控件:

foreach (Label l in Controls.OfType<Label>())
{
l.ForeColor = Color.Black;
}

编辑:

如果你有更深层次的控件,你可以递归地做:

private void SetLabelBlack(Control ctrl)
{
foreach (Control c in ctrl.Controls)
{
Label l = c as Label;
if (l != null)
{
l.ForeColor = Color.Black;
}
else
{
SetLabelBlack(c);
}
}
}

然后这样调用它:

SetLabelBlack(this);

关于c# - 如何通过单击按钮更改所有标签前景色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34530821/

25 4 0