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

Sco*_*sys 2 c# background-color

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

changeColor_Click
{
  label1.BackColor = Color.Black;
  label2.BackColor = Color.Black;
  label3.BackColor = Color.Black;
  etc...
}
Run Code Online (Sandbox Code Playgroud)

我在找什么:

changeColor_Click
{
 all.BackColor = Color.Black;
}
Run Code Online (Sandbox Code Playgroud)

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

label1 =蓝色

label2 =红色

label3 =黄色

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

Fas*_*tAl 6

你必须使用递归.

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

ChangeColor_Click
{
   ChangeAllBG(this);
}

void ChangeAllBG(Control c)
{
    c.BackColor=Color.Teal;
    foreach (Control ctl in c.Controls)
        ChangeAllBG(ctl);
}
Run Code Online (Sandbox Code Playgroud)