动态修改由按钮,工具条,面板等组成的WinForm应用程序的每个控件的前景色和背景色的最佳方法是什么?是否有一种简单的方法可以自动循环每个控件,还是必须手动更改每个控件?感谢。
答案 0 :(得分: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 :(得分:2)
foreach (Control c in MyForm.Controls) {
c.BackColor = Colors.Black;
c.ForeColor = Colors.White;
}
答案 2 :(得分:0)
这实际上取决于你想要做什么。最优雅的方式可能是您在设计时定义的链接应用程序设置,然后您就可以在运行时更改。
答案 3 :(得分: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);
}
}