次の方法で共有


Control.CreateControlCollection メソッド

定義

サーバー コントロールの子コントロール (リテラルとサーバーの両方) を保持する新しい ControlCollection オブジェクトを作成します。

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 オブジェクト。

次のコード例では、クラスから継承するクラスのインスタンスをCustomControlCollection作成するメソッドをControlCollectionオーバーライドCreateControlCollectionします。

// 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 カスタム サーバー コントロールのオーバーライドでメソッドを CreateChildControls 使用します。 新しいコレクションが作成され、2 つの子コントロールと secondControl. firstControl


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


注釈

クラスから派生したコレクション オブジェクトを作成した場合は、カスタム サーバー コントロールでこのメソッドを ControlCollection オーバーライドします。 その後、このメソッドのオーバーライドでそのコレクション クラスをインスタンス化できます。

適用対象

こちらもご覧ください