この記事では、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
はクラス宣言の前にあります。 designerTypeName
とdesignerBaseType
パラメーターを渡して、DesignerAttribute
を初期化します。
designerTypeName
は、デザイン時サービスを提供するデザイナー型の完全修飾名です。 designerTypeName
パラメーターのSystem.Windows.Forms.Design.ParentControlDesigner
とSystem.Design
の組み合わせを渡します。 ParentControlDesigner
クラスは、UserControl のデザイン時の動作を拡張します。
designerBaseType
はデザイナーの基底クラスの名前です。 デザイン時サービスに使用されるクラスは、IDesigner インターフェイスを実装する必要があります。
デザイン時コントロール コンテナーとして UserControl を作成する
新しい Visual C# Windows コントロール ライブラリ プロジェクトを作成します。 これを行うには、次の手順を実行します。
- Visual Studio を起動します。
- [ファイル] メニューの [新規作成] をポイントし、 [プロジェクト] をクリックします。
- [プロジェクトの種類]で、[Visual C#] をクリックし、[Templates]<
の [コントロール ライブラリWindows フォーム] をクリック。
プロジェクトにContainerUserControlという名前を付けます。 既定では、 UserControl1.cs が作成されます。
ソリューション エクスプローラーで、[UserControl1.cs] を右クリックし、[コードの表示] をクリック。
宣言セクションに次のコードを追加します。
using System.ComponentModel.Design;
次のように、
System.ComponentModel.DesignerAttribute
属性をコントロールに適用します。[Designer("System.Windows.Forms.Design.ParentControlDesigner, System.Design", typeof(IDesigner))] public class UserControl1 : System.Windows.Forms.UserControl { ... }
[ビルド] メニューの [ソリューションのビルド] をクリックします。
UserControl をテストする
新しい Visual C# プロジェクトを作成します。 これを行うには、次の手順を実行します。
- Visual Studio を起動します。
- [ファイル] メニューの [新規作成] をポイントし、 [プロジェクト] をクリックします。
- [プロジェクトの種類で、[Visual C#] をクリックし、[Templates]<
の [アプリケーションWindows フォーム] をクリック。 既定では、 Form1.cs が作成されます。
UserControl1 コントロールをツールボックスに追加します。
- [ツール] メニューで [ツールボックス アイテムの選択] をクリックします。
- [ .NET Framework コンポーネント ] タブで、[ Browse をクリックします。
- 開くファイル ボックスで、UserControl コントロールの作成時にビルドされた DLL を見つけます。
UserControl1 をツールボックス (Windows フォーム の下) からForm1.csにドラッグします。
ツールボックスから UserControl1 に Button コントロールをドラッグします。
Note
UserControl1 は、Button コントロールのコントロール コンテナーとして動作します。
関連情報
詳細については、「Microsoft Web サイト: ParentControlDesigner クラス」を参照してください。