繁体   English   中英

在C#中设置所有对象的背景颜色

[英]Set the background color of all objects in C#

有没有一种简单的方法来设置表单上所有对象的背景颜色? 我试图通过一切运行时的点击事件来做到这一点。 所以会有一个按钮。 我想避免的是:

changeColor_Click
{
  label1.BackColor = Color.Black;
  label2.BackColor = Color.Black;
  label3.BackColor = Color.Black;
  etc...
}

我在找什么:

changeColor_Click
{
 all.BackColor = Color.Black;
}

请记住,每个标签都是在GUI上启动的不同颜色背景:

label1 =蓝色

label2 =红色

label3 =黄色

我有很多不同的对象,我试图找到一个在主题之间切换的好方法。 有关如何实现这一目标的任何建议?

你必须使用递归

请原谅我糟糕的c#,多年没用过它,你明白了......

ChangeColor_Click
{
   ChangeAllBG(this);
}

void ChangeAllBG(Control c)
{
    c.BackColor=Color.Teal;
    foreach (Control ctl in c.Controls)
        ChangeAllBG(ctl);
}
void SetBackColorRecursive(Control control, Color color)
{
    control.BackColor = color;

    foreach (Control c in control.Controls)
        SetBackColorRecursive(c, color);
}

在您的窗体上调用此方法,如下所示: SetBackColorRecursive(this, Color.Black);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM