به دست آوردن لیست کنترل های موجود در یک فرم

برای به دست آوردن لیست کنترل های موجود در یک فرم می توان از متد زیر استفاده کرد :

private List<Control> GetAllControls(Control container, List<Control> list)
{
    foreach (Control c in container.Controls)
    {
        list.Add(c);
        if (c.Controls.Count > 0)
            list = GetAllControls(c, list);
    }
    return list;
}

نحوه استفاده از آن به صورت زیر است :

List<Control> AllControlsCollection = GetAllControls(this, new List<Control>());

foreach (object control in AllControlsCollection)
{
    MessageBox.Show(control.ToString());
}