我有一个GUI类。我将frmMain(表单)传递给GUI构造函数。然后我有以下方法来访问子控件:
public void assignEvents(frmMain frm)
{
foreach (Control ctl in frm.Controls)
{
ctl.BackColor = Color.GreenYellow;
Log.AddData(ctl.Name.ToString() + ".Backcolor = " + ctl.BackColor.ToString(), 3);
}
}
我在输出(日志)中获得了新的更新颜色,但它对控件没有任何影响,它们仍然是默认颜色。我有什么想法吗?
编辑:
我称之为:
// GUI.cs
public class GUI {
public GUI(frmMain frm){
assignEvents(frm);
}
}
// frmMain.cs
public frmMain()
{
InitializeComponent();
gui = new M.Gui (this);
}
答案 0 :(得分:0)
根据您的评论,您需要尝试递归遍历每个ControlCollection以设置BackColor属性。
尝试将代码更改为以下内容:
public GUI(frmMain frm) {
assignEvents(frm.Controls);
}
public void assignEvents(Control.ControlCollection controls) {
foreach (Control ctl in controls) {
ctl.BackColor = Color.GreenYellow;
assignEvents(ctl.Controls);
}
}