ControlCollectionとは? わかりやすく解説

ControlCollection クラス

ASP.NET サーバー コントロールが子コントロールのリストを維持できるようにする、コレクション コンテナを提供します。

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Class ControlCollection
    Implements ICollection, IEnumerable
Dim instance As ControlCollection
public class ControlCollection : ICollection,
 IEnumerable
public ref class ControlCollection : ICollection,
 IEnumerable
public class ControlCollection implements ICollection,
 IEnumerable
public class ControlCollection implements ICollection,
 IEnumerable
解説解説
使用例使用例

Control.CreateChildControls メソッドをオーバーライドして、2 つのコントロール (ChildControl という名前のカスタム クラスの 2 つのインスタンス) を作成するコード例を次に示します。これらのコントロールには、Message という名前の文字列プロパティが存在します。2 つのコントロールを、作成した後で ControlCollection に追加しています。このバージョンの Control.CreateChildControls を含むクラスにこれらのコントロールを追加するために、Add メソッドを各コントロールに対して呼び出しています。このコードではまた、作成したコントロールが不必要に再作成されることのないよう、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 '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;
}

継承階層継承階層
System.Object
  System.Web.UI.ControlCollection
     派生クラス
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

ControlCollection コンストラクタ

指定した親サーバー コントロールの ControlCollection クラスの新しいインスタンスを初期化します。

名前空間: System.Web.UI
アセンブリ: System.Web (system.web.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentException

owner パラメータが null 参照 (Visual Basic では Nothing) である場合に発生します。

使用例使用例

次に示すのは、ControlCollection クラスのコンストラクタをオーバーライドするカスタム クラスのコード例です。このカスタム クラスでは、コレクションのインスタンスが作成されるとトレース ログにメッセージ (Owner プロパティの名前を含む) が書き込まれます。この例を使用するには、ページまたはアプリケーションでトレースの機能が有効になっている必要があります。

' Create a custom ControlCollection that writes
' information to the Trace log when an instance
' of the collection is created.
<AspNetHostingPermission(SecurityAction.Demand, _
   Level:=AspNetHostingPermissionLevel.Minimal)> _
Public NotInheritable Class
 CustomControlCollection
    Inherits ControlCollection

    Private context As HttpContext

    Public Sub New(ByVal
 owner As Control)
        MyBase.New(owner)
        HttpContext.Current.Trace.Write("The control collection
 is created.")
        ' Display the Name of the control
        ' that uses this collection when tracing is enabled.
        HttpContext.Current.Trace.Write("The owner is: "
 _
      & Me.Owner.ToString())
    End Sub


End Class

// Create a custom ControlCollection that writes
// information to the Trace log when an instance
// of the collection is created.
[AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Minimal)]
public class CustomControlCollection : ControlCollection
{
    private HttpContext context;

    public CustomControlCollection(Control owner)
        : base(owner)
    {

        HttpContext.Current.Trace.Write("The control collection is created.");
        // Display the Name of the control
        // that uses this collection when tracing is enabled.
        HttpContext.Current.Trace.Write("The owner is: " + this.Owner.ToString());
    }
}
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ControlCollection クラス
ControlCollection メンバ
System.Web.UI 名前空間
Control.Controls プロパティ
Control クラス

ControlCollection プロパティ


ControlCollection メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Add 指定した Control オブジェクトをコレクションに追加します。
パブリック メソッド AddAt 指定したインデックス位置に、指定した Control オブジェクトを追加します。
パブリック メソッド Clear 現在のサーバー コントロールの ControlCollection オブジェクトからすべてのコントロールを削除します。
パブリック メソッド Contains 指定したサーバー コントロールが親サーバー コントロールの ControlCollection オブジェクト内にあるかどうかを確認します。
パブリック メソッド CopyTo ControlCollection オブジェクトに格納されている子コントロールを、System.Array オブジェクトに、System.Array 内の指定したインデックス位置からコピーします。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetEnumerator ControlCollection オブジェクトを反復処理できる列挙子を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド IndexOf コレクション内の指定した Control オブジェクトのインデックスを取得します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Remove 親サーバー コントロールの ControlCollection オブジェクトから、指定したサーバー コントロールを削除します。
パブリック メソッド RemoveAt ControlCollection オブジェクトから、指定したインデックス位置にある子コントロールを削除します。
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ControlCollection クラス
System.Web.UI 名前空間
Control クラス
Page
Control.Controls プロパティ

その他の技術情報

コレクションとデータ構造体

ControlCollection メンバ

ASP.NET サーバー コントロールが子コントロールのリストを維持できるようにする、コレクション コンテナを提供します。

ControlCollection データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Add 指定した Control オブジェクトをコレクションに追加します。
パブリック メソッド AddAt 指定したインデックス位置に、指定した Control オブジェクトを追加します。
パブリック メソッド Clear 現在のサーバー コントロールの ControlCollection オブジェクトからすべてのコントロールを削除します。
パブリック メソッド Contains 指定したサーバー コントロールが親サーバー コントロールの ControlCollection オブジェクト内にあるかどうかを確認します。
パブリック メソッド CopyTo ControlCollection オブジェクトに格納されている子コントロールを、System.Array オブジェクトに、System.Array 内の指定したインデックス位置からコピーします。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetEnumerator ControlCollection オブジェクトを反復処理できる列挙子を取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド IndexOf コレクション内の指定した Control オブジェクトのインデックスを取得します。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Remove 親サーバー コントロールの ControlCollection オブジェクトから、指定したサーバー コントロールを削除します。
パブリック メソッド RemoveAt ControlCollection オブジェクトから、指定したインデックス位置にある子コントロールを削除します。
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

ControlCollection クラス
System.Web.UI 名前空間
Control クラス
Page
Control.Controls プロパティ

その他の技術情報

コレクションとデータ構造体



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ControlCollection」の関連用語

ControlCollectionのお隣キーワード

   

英語⇒日本語
日本語⇒英語
   



ControlCollectionのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS