SNenko,
ну тут же очевидно, что свойство цвета объективно принадлежит базовому типу контрола, осталось применить
просто рекурсию ко все элементам формы, и если зная какие то ограничения для каждого меняемого элемента изменить у него цвет
static void Rec<TElement>(IEnumerable elements, Func<TElement, IEnumerable> secondLevelEments,Action<TElement> action)
{
foreach (var element in elements)
{
action((TElement) element);
Rec(secondLevelEments((TElement)element), secondLevelEments, action);
}
}
........................
Rec<Control>(Controls,c=>c.Controls, t =>
{
if (t is TextBox&&t.Parent is Panel)
{
t.BackColor = Color.Wheat;
}
});