private IEnumerable GetAllControls(Control.ControlCollection controls) { List all_controls = new List(); foreach (Control control in controls) { if (control.GetType() == typeof(GroupBox)) { all_controls.AddRange(GetAllControls(control.Controls)); } all_controls.Add(control); } return all_controls; }