Advertise with us

How to find controls in winforms c#

I need to find controls in my forms. In asp.net I used Recursive method to do it, now how to do in winforms?

public static Control FindControlRecursive(Control root, string id)
{
    if (root.ID == id)
        return root;
    return root.Controls.Cast<Control>()
       .Select(c => FindControlRecursive(c, id))
       .FirstOrDefault(c => c != null);
}

any idea..thanks...

Last updated:1/23/2014 12:19:01 AM

1 Answers

Pravesh Singh
Pravesh Singh

Hi Goti,


Each control has a Controls property which in fact is a ControlCollection. This collection itself has a method Find() which takes 2 parameters. The first parameter is the name of the control which you want to find, the second parameter indicates wether to include all children into the search.

As a sample:

Control[] allButton1 = this.Controls.Find("button1", true);
// for your example
Control[] foundControls = this.Controls.Find(root.Name,true);

Answer