Loop through all controls in a user control

How do I properly recurse all of the controls in a User Control (.ascx)?

here is my attempt:

  private Control FindNestedControl(ControlCollection c, string typeasstring, bool value)
            Control tempControl = null;

            foreach (Control cc in c)
                string contype = cc.GetType().ToString();
                if (contype == typeasstring)
                    ((System.Web.UI.WebControls.TextBox)cc).BorderWidth = 0;
                    ((System.Web.UI.WebControls.TextBox)cc).ReadOnly = value;
                    ((System.Web.UI.WebControls.TextBox)cc).Enabled = !value;
                    tempControl = FindNestedControl(cc.Controls, typeasstring, value);

            return tempControl;

Open in new window

My intent is to loop through all the controls and make the textbox controls read only.
Tom KnowltonWeb developerAsked:
Who is Participating?
Easwaran ParamasivamConnect With a Mentor Commented:

Refer below snippet. Please correct the error if any while using the below code in your application.

MyUserControl u = Page.FindControl("MyUserControl1") as MyUserControl;

foreach (Control ctrl in u.Controls)


          if (ctrl is TextBox)


              ((TextBox)(ctrl)).Enabled = false;



Tom KnowltonWeb developerAuthor Commented:
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.