次の方法で共有


Visual C# を使用して UserControl オブジェクトをコントロール コンテナーのデザイン時として機能させる

この記事では、UserControl オブジェクトを Windows フォームに追加した後、デザイン時に UserControl オブジェクトをコントロール コンテナーとして機能させる方法について説明します。

元の製品バージョン: Visual C#
元の KB 番号: 813450

まとめ

この記事では、Microsoft .NET Framework クラス ライブラリ名前空間 System.ComponentModelについて説明します。

この記事では、Windows フォームに UserControl を配置した後、デザイン時に UserControl オブジェクトをコントロール コンテナーとして機能させる方法について説明します。 コントロールを UserControl にドラッグする場合があります。 これを行うには、UserControl がコントロール コンテナーとして機能する必要があります。

既定では、UserControl オブジェクトは、コントロールを作成するときにのみコントロール コンテナーとして機能できます。 UserControl を Windows フォームに配置した後で UserControl ホストを構成コントロールにするには、UserControl の既定のデザイナーを変更する必要があります。 コンポーネントのデザイン時サービスを実装するには、System.ComponentModel名前空間のDesignerAttribute クラスを使用します。 DesignerAttributeはクラス宣言の前にあります。 designerTypeNamedesignerBaseTypeパラメーターを渡して、DesignerAttributeを初期化します。

designerTypeName は、デザイン時サービスを提供するデザイナー型の完全修飾名です。 designerTypeName パラメーターのSystem.Windows.Forms.Design.ParentControlDesignerSystem.Designの組み合わせを渡します。 ParentControlDesigner クラスは、UserControl のデザイン時の動作を拡張します。

designerBaseType はデザイナーの基底クラスの名前です。 デザイン時サービスに使用されるクラスは、IDesigner インターフェイスを実装する必要があります。

デザイン時コントロール コンテナーとして UserControl を作成する

  1. 新しい Visual C# Windows コントロール ライブラリ プロジェクトを作成します。 これを行うには、次の手順を実行します。

    1. Visual Studio を起動します。
    2. [ファイル] メニューの [新規作成] をポイントし、 [プロジェクト] をクリックします。
    3. [プロジェクトの種類]で、[Visual C#] をクリックし、[Templates]<の [コントロール ライブラリWindows フォーム] をクリック
  2. プロジェクトにContainerUserControlという名前を付けます。 既定では、 UserControl1.cs が作成されます。

  3. ソリューション エクスプローラーで、[UserControl1.cs] を右クリックし、[コードの表示] をクリック

  4. 宣言セクションに次のコードを追加します。

    using System.ComponentModel.Design;
    
  5. 次のように、 System.ComponentModel.DesignerAttribute 属性をコントロールに適用します。

    [Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))]
    public class UserControl1 : System.Windows.Forms.UserControl
    {
        ...
    }
    
  6. [ビルド] メニューの [ソリューションのビルド] をクリックします。

UserControl をテストする

  1. 新しい Visual C# プロジェクトを作成します。 これを行うには、次の手順を実行します。

    1. Visual Studio を起動します。
    2. [ファイル] メニューの [新規作成] をポイントし、 [プロジェクト] をクリックします。
    3. [プロジェクトの種類で、[Visual C#] をクリックし、[Templates]<の [アプリケーションWindows フォーム] をクリック 既定では、 Form1.cs が作成されます。
  2. UserControl1 コントロールをツールボックスに追加します。

    1. [ツール] メニューで [ツールボックス アイテムの選択] をクリックします。
    2. [ .NET Framework コンポーネント ] タブで、[ Browse をクリックします。
    3. 開くファイル ボックスで、UserControl コントロールの作成時にビルドされた DLL を見つけます。
  3. UserControl1 をツールボックス (Windows フォーム の下) からForm1.csにドラッグします。

  4. ツールボックスから UserControl1 に Button コントロールをドラッグします。

Note

UserControl1 は、Button コントロールのコントロール コンテナーとして動作します。

関連情報

詳細については、「Microsoft Web サイト: ParentControlDesigner クラス」を参照してください。