Use Recursion to Clear out Textboxes : C#: Access Controls with Recursion: Listing 1
Recursion is a great way to access all the controls on a form. If you create an IEnumerable<Control> you can manipulate it through LINQ. Because you’re just copying references to objects, this doesn’t have a significant performance impact.
private void clearTextBoxesButton_Click(
object sender, EventArgs e)
{
var q = from ctl in
this.AllControls().OfType<TextBox>()
select (TextBox)ctl;
foreach (TextBox textbox in q)
{
textbox.Text = String.Empty;
}
}
public static class Utility
{
public static IEnumerable<Control>
AllControls(this Control container)
{
var list = new List<Control>();
AddChildControls(list, container);
return list;
}
private static void AddChildControls(
List<Control> list, Control container)
{
foreach (Control ctl
in container.Controls)
{
list.Add(ctl);
if (ctl.Controls.Count > 0)
{
AddChildControls(
list, ctl);
}
}
}
}