Control.CreateControlCollection 方法

定义

创建一个新 ControlCollection 对象来保存服务器控件的子控件(包括文本控件和服务器控件)。Creates a new ControlCollection object to hold the child controls (both literal and server) of the server control.

protected:
 virtual System::Web::UI::ControlCollection ^ CreateControlCollection();
protected virtual System.Web.UI.ControlCollection CreateControlCollection ();
abstract member CreateControlCollection : unit -> System.Web.UI.ControlCollection
override this.CreateControlCollection : unit -> System.Web.UI.ControlCollection
Protected Overridable Function CreateControlCollection () As ControlCollection

返回

ControlCollection

一个 ControlCollection 对象,用于包含当前服务器控件的子服务器控件。A ControlCollection object to contain the current server control's child server controls.

示例

下面的代码示例重写 CreateControlCollection 方法以创建类的实例 CustomControlCollection ,该类继承自 ControlCollection 类。The following code example overrides the CreateControlCollection method to create an instance of a CustomControlCollection class, which inherits from the ControlCollection class.

// Override the CreateControlCollection method to 
// write to the Trace object when tracing is enabled
// for the page or application in which this control
// is included.   
protected override ControlCollection CreateControlCollection()
{
    return new CustomControlCollection(this);
}
' Override the CreateControlCollection method to 
' write to the Trace object when tracing is enabled
' for the page or application in which this control
' is included.   
Protected Overrides Function CreateControlCollection() As ControlCollection
    Return New CustomControlCollection(Me)
End Function

下面的代码示例使用 CreateControlCollection 方法的自定义服务器控件重写中的方法 CreateChildControlsThe following code example uses the CreateControlCollection method in a custom server control override of the CreateChildControls method. 创建新的集合,然后用两个子控件(和)填充 firstControl secondControlThe new collection is created, and then populated with two child controls, firstControl and secondControl.


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

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


注解

如果已创建派生自类的集合对象,请在自定义服务器控件中重写此方法 ControlCollectionOverride this method in a custom server control if you have created a collection object that is derived from the ControlCollection class. 然后,你可以在此方法的重写中实例化此集合类。You can then instantiate that collection class in the override of this method.

适用于

另请参阅