Share via

Control.ControlCollection.Clear Method


Removes all controls from the collection.

 virtual void Clear();
public virtual void Clear ();
abstract member Clear : unit -> unit
override this.Clear : unit -> unit
Public Overridable Sub Clear ()



The following code example removes all the Control objects in the Control.ControlCollection of the derived class Panel. The example requires that you have created a Panel, a Button, and at least one other control on a Form. The other controls are added to the Panel control, and the Panel added to the Form. When the button is clicked, all the controls contained in the panel are removed from the Control.ControlCollection.

   // Clear all the controls in the Panel.
   void clearButton_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
// Clear all the controls in the Panel.
private void clearButton_Click(object sender, System.EventArgs e)
' Clear all the controls in the Panel.
Private Sub ClearButton_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles ClearButton.Click
End Sub


You can use the Clear method to remove the entire collection of controls from a parent control.

To remove an individual control from the collection, use the Remove or RemoveAt methods.


Calling the Clear method does not remove control handles from memory. You must explicitly call the Dispose method to avoid memory leaks.

To add new Control objects to the collection, use the Add or AddRange methods.

Notes to Inheritors

When overriding Clear() in a derived class, be sure to call the base class's Clear() method to ensure that all the controls are removed from the collection.

Applies to