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


    }
comments powered by Disqus

Featured

  • VS Code 1.127 Further Integrates Advanced Browser-AI Tech

    Microsoft's July 1 Visual Studio Code update continues a recent push to make the editor's integrated browser a more capable development surface -- and a more useful tool for AI agents.

  • Support Vector Regression with SGD Training Using C#

    Support vector regression can predict numeric values effectively, and this article shows how to implement and train a kernel SVR model in C# using stochastic sub-gradient descent.

  • New GitHub Switch Limits Repo Issue Creation to Collaborators Only

    After publicly touting pull request limits as a way to cut maintainer noise, GitHub is taking the same idea further with a new setting that lets repository admins restrict issue creation to collaborators only.

  • Uno Platform Helps Ship First Stable SkiaSharp 4.0 Release for 2D .NET Graphics

    SkiaSharp 4.148.0 is the first stable v4 release, bringing a newer Skia engine, API cleanup, performance work and a Microsoft-Uno co-maintenance model.

Subscribe on YouTube