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

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

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

概要

この記事では、Microsoft .NET Framework クラス ライブラリ名前空間 を参照しますSystem.ComponentModel

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

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

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

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

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

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

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

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

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

注:

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

関連情報

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