Установить цвет фона всех объектов в C # - PullRequest
2 голосов
/ 08 сентября 2010

Есть ли простой способ установить цвет фона всех объектов в форме?Я пытаюсь сделать это с помощью события клика, когда все работает.Так что будет более одной кнопки.Чего я хотел бы избежать, так это:

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

То, что я ищу:

changeColor_Click
{
 all.BackColor = Color.Black;
}

Имейте в виду, что каждый ярлык имеет разные цветовые фоны для запуска в графическом интерфейсе:

label1 = blue

label2 = red

label3 = yellow

У меня много разных объектов, и я пытаюсь найти хороший способ переключениямежду темами.Любые предложения о том, как мне этого добиться?

Ответы [ 2 ]

6 голосов
/ 08 сентября 2010

Вы должны использовать Рекурсия .

Простите мой паршивый c #, не использовал его годами, вы поняли ...

ChangeColor_Click
{
   ChangeAllBG(this);
}

void ChangeAllBG(Control c)
{
    c.BackColor=Color.Teal;
    foreach (Control ctl in c.Controls)
        ChangeAllBG(ctl);
}
2 голосов
/ 08 сентября 2010
void SetBackColorRecursive(Control control, Color color)
{
    control.BackColor = color;

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

Вызовите этот метод в вашей форме так: SetBackColorRecursive(this, Color.Black);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...