次の方法で共有


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 キーが押されたことを認識してから、コレクション内の次のコントロールにフォーカスを移動できます。

メモ   コンテナ コントロールはフォーカスを受け取りません。フォーカスは、常にコンテナ内のコントロールのコレクション内にある最初の子コントロールに設定されます。

通常、このクラスからは直接継承しません。 FormUserControlUpDownBase の各クラスは、 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