public virtual void SetupColors(ColorPalette c) { this.BackColor = c[backcolor]; this.ForeColor = c[forecolor]; // Setup colors on child controls foreach(Control cc in base.Controls) { if(cc is IColorable) (cc as IColorable).SetupColors(c); } }