2010-11-25 36 views

回答

2
foreach (Control c in MyForm.Controls) { 
    c.BackColor = Colors.Black; 
    c.ForeColor = Colors.White; 
} 
4

您可以通过控制循环,我相信所有的控件都有Controls属性,它是包含控件的列表。

假设功能:

public void ChangeControlsColours(Controls in_c) 
{ 

    foreach (Control c in in_c) 
    { 
     c.BackColor = Colors.Black; 
     c.ForeColor = Colors.White; 
     if (c.Controls.length >0) //I'm not 100% this line is correct, but I think you get the idea, yes? 
      ChangeControlsColours(c.Controls) 
    } 

} 
+1

+1用于提供递归解决方案 – 2010-11-25 16:30:49

0

这真的取决于你想要做什么。最优雅的方式可能是您在设计时定义的链接应用程序设置,然后您可以在运行时进行更改。

0
private void UpdateInternalControls(Control parent) 
    { 
     UpdateControl(parent, delegate(Control control) 
           { 
            control.BackColor = Color.Turquoise; 
            control.ForeColor = Color.Yellow; 
           }); 
    } 

    private static void UpdateControl(Control c, Action<Control> action) 
    { 
     action(c); 
     foreach (Control child in c.Controls) 
     { 
      UpdateControl(child, action); 
     } 
    } 
相关问题