次の方法で共有


IContainerControl インターフェイス

コントロールが他のコントロールの親として動作するための機能を提供します。

この型のすべてのメンバの一覧については、IContainerControl メンバ を参照してください。

Public Interface IContainerControl
[C#]
public interface IContainerControl
[C++]
public __gc __interface IContainerControl
[JScript]
public interface IContainerControl

IContainerControl を実装するクラス

クラス 説明
ContainerControl 他のコントロールのコンテナとして機能するコントロールにフォーカスを管理する機能を提供します。

解説

実装時の注意: コントロールのコレクションの親にするクラスにインターフェイスを実装します。このインターフェイスのメンバを使用して、子コントロールをアクティブにしたり、どのコントロールが現在アクティブであるかを判断したりできます。クラスに実装されると、 ActivateControlControl をパラメータとして取得し、指定したコントロールをアクティブにします。 ActiveControl プロパティは、コントロールをアクティブにしたり、アクティブなコントロールを取得したりします。

ほとんどの場合、このインターフェイスを直接実装する必要はありません。たとえば、Windows Control Library プロジェクトを作成した場合は、Visual Studio が初期クラスを生成します。生成されたクラスは UserControl クラスを継承し、 UserControlIContainerControl を実装します。

使用例

[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 ファミリ

アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)

参照

IContainerControl メンバ | System.Windows.Forms 名前空間 | ContainerControl | Control