Clear a form

avirag 4 Tallied Votes 806 Views Share

This is a snippet I use to clear a form. Right now it clears: TextBox, RichTextBox, ComboBox, CheckBox and RadioButton. More can be added if needed...
:)

Geekitygeek commented: well written snippet..may use this myself :p +1
public static void ClearForm(System.Windows.Forms.Control parent)
{
    foreach (System.Windows.Forms.Control ctrControl in parent.Controls)
    {
         //Loop through all controls 
         if (object.ReferenceEquals(ctrControl.GetType(), typeof(System.Windows.Forms.TextBox)))
         {
              //Check to see if it's a textbox 
              ((System.Windows.Forms.TextBox)ctrControl).Text = string.Empty;
                    //If it is then set the text to String.Empty (empty textbox) 
          }
          else if (object.ReferenceEquals(ctrControl.GetType(), typeof(System.Windows.Forms.RichTextBox)))
          {
               //If its a RichTextBox clear the text
               ((System.Windows.Forms.RichTextBox)ctrControl).Text = string.Empty;
          }
          else if (object.ReferenceEquals(ctrControl.GetType(), typeof(System.Windows.Forms.ComboBox)))
          {
               //Next check if it's a dropdown list 
               ((System.Windows.Forms.ComboBox)ctrControl).SelectedIndex = -1;
                    //If it is then set its SelectedIndex to 0 
          }
          else if (object.ReferenceEquals(ctrControl.GetType(), typeof(System.Windows.Forms.CheckBox)))
          {
               //Next uncheck all checkboxes
               ((System.Windows.Forms.CheckBox)ctrControl).Checked = false;
          }
          else if (object.ReferenceEquals(ctrControl.GetType(), typeof(System.Windows.Forms.RadioButton)))
          {
               //Unselect all RadioButtons
               ((System.Windows.Forms.RadioButton)ctrControl).Checked = false;
          }
          if (ctrControl.Controls.Count > 0)
          {
              //Call itself to get all other controls in other containers 
              ClearForm(ctrControl);
          }
     }
}

//Example call
ClearForm(this);
Diamonddrake 397 Master Poster

#
if (ctrControl.Controls.Count > 0)
#
{
#
//Call itself to get all other controls in other containers
#
ClearForm(ctrControl);
#
}

That's clever. Gets all the child controls.

Geekitygeek 480 Nearly a Posting Virtuoso

Agreed, the recursive call is a nice touch...good job :)

Sodabread 88 Posting Whiz in Training

Nice snippet. I've actually been using something along these lines for some web apps I've been working on.

I do have a question though: Which is faster or more "correct"?

if(object.ReferenceEquals(ctrControl.GetType(), typeof(System.Windows.Forms.ComboBox)))

or

if(ctrControl is System.Windows.Forms.ComboBox)

Is either of those better than the other, or they used for entirely different things? I ask because I'm using the latter, and if the former is a better or more proper use, I'd rather switch to that one.

ahmad.albab.87 0 Newbie Poster

nice one..

JOSheaIV 119 C# Addict

Nice little piece of code. I like the recurssion piece as well (course I say that with a little bias because I did something like that to and though to myself "wow that was clever of me").

If you do a PictureBox addition, make sure you dispose the Image, and don't just set it to null ... of course this assumes the image isn't referencing an item in memory shared by others (couldn't help myself bringing this up, I've been working a lot with Images in the last few years)

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.