ContainerControl クラス
他のコントロールのコンテナとして機能するコントロールにフォーカスを管理する機能を提供します。
この型のすべてのメンバの一覧については、ContainerControl メンバ を参照してください。
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Windows.Forms.Control
System.Windows.Forms.ScrollableControl
System.Windows.Forms.ContainerControl
System.Windows.Forms.Form
System.Windows.Forms.PropertyGrid
System.Windows.Forms.UpDownBase
System.Windows.Forms.UserControl
Public Class ContainerControl
Inherits ScrollableControl
Implements IContainerControl
[C#]
public class ContainerControl : ScrollableControl,
IContainerControl
[C++]
public __gc class ContainerControl : public ScrollableControl,
IContainerControl
[JScript]
public class ContainerControl extends ScrollableControl implements
IContainerControl
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
ContainerControl は、他のコントロールのコンテナとして機能するコントロールを表し、フォーカスを管理する機能を提供します。このクラスから継承したコントロールは、フォーカスが別のコンテナに移動した場合でも、そのコントロールに含まれているアクティブ コントロールを追跡できます。
ContainerControl オブジェクトは、保持しているコントロールに対して論理的な境界を提供します。コンテナ コントロールでは、Tab キーが押されたことを認識してから、コレクション内の次のコントロールにフォーカスを移動できます。
メモ コンテナ コントロールはフォーカスを受け取りません。フォーカスは、常にコンテナ内のコントロールのコレクション内にある最初の子コントロールに設定されます。
通常、このクラスからは直接継承しません。 Form 、 UserControl 、 UpDownBase の各クラスは、 ContainerControl から継承します。
使用例
[Visual Basic, C#, C++] ScrollableControl クラスから継承し、 IContainerControl インターフェイスを実装する例を次に示します。実装は、 ActiveControl プロパティおよび ActivateControl メソッドに追加されます。
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Public Class MyContainerControl
Inherits ScrollableControl
Implements IContainerControl
Private myActiveControl As Control
Public Sub New()
' Make the container control Blue so it can be distinguished on the form.
Me.BackColor = Color.Blue
' Make the container scrollable.
Me.AutoScroll = True
End Sub
' Add implementation to the IContainerControl.ActiveControl property.
Public Property ActiveControl() As Control Implements IContainerControl.ActiveControl
Get
Return Me.myActiveControl
End Get
Set
' Make sure the control is a member of the ControlCollection.
If Me.Controls.Contains(value) Then
Me.myActiveControl = value
End If
End Set
End Property
' Add implementation to the IContainerControl.ActivateControl(Control) method.
public Function ActivateControl(active As Control) As Boolean Implements IContainerControl.ActivateControl
If Me.Controls.Contains(active) Then
' Select the control and scroll the control into view if needed.
active.Select()
Me.ScrollControlIntoView(active)
Me.myActiveControl = active
Return True
End If
Return False
End Function
End Class
[C#]
using System;
using System.Windows.Forms;
using System.Drawing;
public class MyContainer : ScrollableControl, IContainerControl
{
private Control activeControl;
public MyContainer()
{
// Make the container control Blue so it can be distinguished on the form.
this.BackColor = Color.Blue;
// Make the container scrollable.
this.AutoScroll = true;
}
// Add implementation to the IContainerControl.ActiveControl property.
public Control ActiveControl
{
get
{
return activeControl;
}
set
{
// Make sure the control is a member of the ControlCollection.
if(this.Controls.Contains(value))
{
activeControl = value;
}
}
}
// Add implementations to the IContainerControl.ActivateControl(Control) method.
public bool ActivateControl(Control active)
{
if(this.Controls.Contains(active))
{
// Select the control and scroll the control into view if needed.
active.Select();
this.ScrollControlIntoView(active);
this.activeControl = active;
return true;
}
return false;
}
}
[C++]
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;
public __gc class MyContainer : public ScrollableControl, public IContainerControl {
private:
Control* activeControl;
public:
MyContainer() {
// Make the container control Blue so it can be distinguished on the form.
this->BackColor = Color::Blue;
// Make the container scrollable.
this->AutoScroll = true;
}
// Add implementation to the IContainerControl.ActiveControl property.
__property Control* get_ActiveControl() {
return activeControl;
}
__property void set_ActiveControl(Control* value) {
// Make sure the control is a member of the ControlCollection.
if (this->Controls->Contains(value)) {
activeControl = value;
}
}
// Add implementations to the IContainerControl.ActivateControl(Control) method.
bool ActivateControl(Control* active) {
if (this->Controls->Contains(active)) {
// Select the control and scroll the control into view if needed.
active->Select();
this->ScrollControlIntoView(active);
this->activeControl = active;
return true;
}
return false;
}
};
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Windows.Forms
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)
参照
ContainerControl メンバ | System.Windows.Forms 名前空間 | Form | UserControl | UpDownBase | IContainerControl | ScrollableControl