Control.Controls プロパティ
アセンブリ: System.Web (system.web.dll 内)


ASP.NET ページでは、サーバー コントロールの開始タグと終了タグの間でコントロールを宣言して追加すると、ASP.NET は自動的にそのコントロールを、格納する側のサーバー コントロールの ControlCollection に追加します。サーバーで処理されない HTML タグまたは文字列は LiteralControl オブジェクトとして扱われます。これらは、他のサーバー コントロールと同様にコレクションに追加されます。
Controls プロパティは、任意のサーバー コントロールの ControlCollection クラスにプログラムによりアクセスできるようにします。コントロールをコレクションに追加したり、コレクションから削除できます。また、コレクションのサーバー コントロールを反復処理できます。
継承時の注意 Controls プロパティをオーバーライドするときは、必ず EnsureChildControls メソッドを呼び出してください。さらに、プログラムによってコントロール コレクションにコントロールを追加することを計画している場合は、オーバーライドされた CreateChildControls メソッドでコントロールを追加することを検討してください。
Controls プロパティを通じてサーバー コントロールの ControlCollection オブジェクトに子コントロールを追加する方法を次の例に示します。

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Control.Controls プロパティ
アセンブリ: System.Windows.Forms (system.windows.forms.dll 内)


Control は、コントロールのコレクションの親としての機能を果たします。たとえば、複数のコントロールが Form に追加されると、各コントロールは、Control クラスから派生した、フォームの Controls プロパティに割り当てられた Control.ControlCollection のメンバになります。
Control.ControlCollection クラスで使用できるメソッドを使用して、Controls プロパティに割り当てられた Control.ControlCollection 内のコントロールを操作できます。
複数のコントロールを親コントロールに追加する場合は、追加するコントロールを初期化する前に SuspendLayout メソッドを呼び出すことをお勧めします。コントロールを親コントロールに追加した後は、ResumeLayout メソッドを呼び出します。そうすることで、多数のコントロールを持つアプリケーションのパフォーマンスが向上します。

Control が派生クラス Panel の Control.ControlCollection のメンバである場合に、そのコントロールをコレクションから削除するコード例を次に示します。この例では、Form 上に Panel、Button、および少なくとも 1 つの RadioButton コントロールが作成されている必要があります。RadioButton コントロールは Panel コントロールに追加され、Panel コントロールが Form コントロールに追加されます。ボタンがクリックされると、radioButton2 という名前のオプション ボタンが Control.ControlCollection から削除されます。
' Remove the RadioButton control if it exists. Private Sub RemoveButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles RemoveButton.Click If Panel1.Controls.Contains(RadioAddRangeButton) Then Panel1.Controls.Remove(RadioAddRangeButton) End If End Sub
// Remove the RadioButton control if it exists. private void removeButton_Click(object sender, System.EventArgs e) { if(panel1.Controls.Contains(removeButton)) { panel1.Controls.Remove(removeButton); } }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- Control.Controlsのページへのリンク