Find all controls of a type, recursively, and perform an operation on them

Find all controls of a type, recursively, and perform an operation on them

Recently I wanted a way to recursively iterate through a control, and its children and perform a certain operation on all controls of a specific type.  I did a quick search on Google for this, but surprisingly wasn’t able to come up with much.  I know someone has definitely done this, but I’m going to post my solution in the meantime, in hopes that others looking for this simple type of thing, will stumble across it.  I’m open to any feedback on improving it. Enjoy.

/// <summary>   
/// Iterates through a control, and its children of a certain type, so that we  
/// can perform an operation on them. 
/// </summary>   
/// <param name="aContainer">Parent Container Control</param>   
/// <param name="aType">Type of control to perform operation on</param>   
public static void IterateControlForType(Control aContainer, Type aType)      
{     
    //Check to make sure control is of type    
    if (aContainer.GetType() == aType)    
    {
        //Will need to do control check here for your type
        if (aContainer is LinkButton)
        {
            //In this case, we use a link button, but this can be any 
            //control you want. Make the neccessary changes, and move on
            LinkButton lb = aContainer as LinkButton;
            lb.Text = "Some Text!";    
        }
    }  

    foreach (Control aCtrl in aContainer.Controls)   
    {    
        //Recursive call to method with child controls as parameter  
        if (aCtrl != null)  
        {  
            IterateControlForType(aCtrl, aType);  
        }  
    }   
}

Share Your Thoughts!

Testimonials

What My Clients Say

Karin - Hope and Future

Brent has always been very prompt and generally exceeds our expectations with his work. His maintenance fee is very reasonable. I strongly recommend him!  We get many compliments on our beautiful web site!

Dan

I contacted Krueger Web Design and Brent did everything.  He setup a test site with the changes so we could verify everything was correct before we transferred from my old hosting provider.  During the setup and conversion Brent was extremely professional and responsive. He responded to any issues the same day.

Dan Kaufman
Emily - GFCLT

We've had a great experience working with Krueger Web Design. Prompt responses, great ideas, effective work... all at a reasonable price! This was the perfect fit for our organization.

Mahmud - ACMC

I would love to recommend you to anyone! You have been very helpful when we needed you the most.

Brian - SEMNIC

Working with Krueger Web Design was effortless. Communicating what I wanted for the website and the results that I saw were identical. The customer service was always prompt and I am completely satisfied with the product.

Zach - Stadium Club

Exactly what I wanted! Fast turnaround time and very affordable. Answered all of our questions quickly and made adjustments promptly. Very easy to work with and puts everything into terminology that even I can understand!

Contact Krueger Web Design

Have a question for me? Need an estimate on some work? You can email me at brent@kruegerwebdesign.com or drop me a line using the button below:

Copyright © 2017 Krueger Web Design - All rights reserved
Web Design in Madison, WI