Skip to main content
.NET Framework Class Library
ControlCollection Class

Provides a collection container that enables ASP.NET server controls to maintain a list of their child controls.

Namespace:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)
Syntax
Public Class ControlCollection _
	Implements [%$TOPIC/kbe31ba9_en-us_VS_110_2_0_0_0_0%], [%$TOPIC/kbe31ba9_en-us_VS_110_2_0_0_0_1%]
public class ControlCollection : [%$TOPIC/kbe31ba9_en-us_VS_110_2_0_1_0_0%], 
	[%$TOPIC/kbe31ba9_en-us_VS_110_2_0_1_0_1%]
public ref class ControlCollection : [%$TOPIC/kbe31ba9_en-us_VS_110_2_0_2_0_0%], 
	[%$TOPIC/kbe31ba9_en-us_VS_110_2_0_2_0_1%]
type ControlCollection =  
    class 
        interface [%$TOPIC/kbe31ba9_en-us_VS_110_2_0_3_0_0%] 
        interface [%$TOPIC/kbe31ba9_en-us_VS_110_2_0_3_0_1%] 
    end

The ControlCollection type exposes the following members.

Constructors
  NameDescription
Public method ControlCollectionInitializes a new instance of the ControlCollection class for the specified parent server control.
Top
Properties
  NameDescription
Public property CountGets the number of server controls in the ControlCollection object for the specified ASP.NET server control.
Public property IsReadOnlyGets a value indicating whether the ControlCollection object is read-only.
Public property IsSynchronizedGets a value indicating whether the ControlCollection object is synchronized.
Public property ItemGets a reference to the server control at the specified index location in the ControlCollection object.
Protected property OwnerGets the ASP.NET server control to which the ControlCollection object belongs.
Public property SyncRootGets an object that can be used to synchronize access to the collection of controls.
Top
Methods
  NameDescription
Public method AddAdds the specified Control object to the collection.
Public method AddAtAdds the specified Control object to the collection at the specified index location.
Public method ClearRemoves all controls from the current server control's ControlCollection object.
Public method ContainsDetermines whether the specified server control is in the parent server control's ControlCollection object.
Public method CopyToCopies the child controls stored in the ControlCollection object to an SystemArray object, beginning at the specified index location in the SystemArray.
Public method Equals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected method FinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method GetEnumeratorRetrieves an enumerator that can iterate through the ControlCollection object.
Public method GetHashCodeServes as a hash function for a particular type. (Inherited from Object.)
Public method GetTypeGets the Type of the current instance. (Inherited from Object.)
Public method IndexOfRetrieves the index of a specified Control object in the collection.
Protected method MemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public method RemoveRemoves the specified server control from the parent server control's ControlCollection object.
Public method RemoveAtRemoves a child control, at the specified index location, from the ControlCollection object.
Public method ToStringReturns a string that represents the current object. (Inherited from Object.)
Top
Extension Methods
  NameDescription
Public Extension Method AsParallelEnables parallelization of a query. (Defined by ParallelEnumerable.)
Public Extension Method AsQueryableConverts an IEnumerable to an IQueryable. (Defined by Queryable.)
Public Extension Method CastTResultCasts the elements of an IEnumerable to the specified type. (Defined by Enumerable.)
Public Extension Method OfTypeTResultFilters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.)
Top
Remarks

You can access any of the properties and methods of the ControlCollection class through the ControlControls property. Since the Control class is the base class for all ASP.NET server controls, all server controls inherit this property.

For more information about collections, see Collections and Data Structures.

Examples

The following code example overrides the ControlCreateChildControls method to create two controls, both instances of the custom class named ChildControl, which has a string property named Message. When created, the two controls are added to the ControlCollection. The Add method is called on each of these controls to add them to the class that contains this version of ControlCreateChildControls. The ChildControlsCreated property is set to true so that these controls will not be created again unnecessarily.

Protected Overrides Sub CreateChildControls()
   ' Creates a new ControlCollection.  
   Me.CreateControlCollection()

   ' Create child controls. 
   Dim firstControl As New ChildControl()
   firstControl.Message = "FirstChildControl" 

   Dim secondControl As New ChildControl()
   secondControl.Message = "SecondChildControl"

   Controls.Add(firstControl)
   Controls.Add(secondControl)

   ' Prevent child controls from being created again.
   ChildControlsCreated = True 
End Sub 'CreateChildControls
protected override void CreateChildControls()
      {               
         // Creates a new ControlCollection.  
         this.CreateControlCollection();

         // Create child controls.
          ChildControl firstControl = new ChildControl();
         firstControl.Message = "FirstChildControl";

         ChildControl secondControl = new ChildControl();
         secondControl.Message = "SecondChildControl";

         Controls.Add(firstControl);
         Controls.Add(secondControl);

         // Prevent child controls from being created again.
         ChildControlsCreated = true;
      }
Version Information

.NET Framework

Supported in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0
Platforms

Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.