Home > DeveloperSection > Forums > How to find controls in winforms c#
Goti Bandu

Total Post:119

Posted on    January-22-2014 11:26 PM

 C# C# 

 1 Reply(s)
 1922  View(s)
Rate this:

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...

Pravesh Singh

Total Post:412

Posted on    January-23-2014 12:19 AM

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);

Don't want to miss updates? Please click the below button!

Follow MindStick