チュートリアル: ツールボックスにカスタム コンポーネントを自動的に設定する
現在開いているソリューションのプロジェクトによってコンポーネントが定義されている場合、コンポーネントは自動的に ツールボックスに表示され、ユーザーによる操作は必要ありません。 ツールボックス項目の選択ダイアログ ボックス (Visual Studio)を使用して、ツールボックス にカスタム コンポーネントを手動で設定することもできますが、ツールボックス では、ソリューションのビルド出力内の項目が次のすべての特性で考慮されます。
IComponentを実装します。
false
に ToolboxItemAttribute が設定されていません。DesignTimeVisibleAttribute が
false
に設定されていません。
手記
ツールボックス は参照チェーンに従わないため、ソリューション内のプロジェクトによってビルドされていない項目は表示されません。
このチュートリアルでは、コンポーネントがビルドされると、カスタム コンポーネントが ツールボックス に自動的に表示される方法について説明します。 このチュートリアルで説明するタスクは次のとおりです。
Windows フォーム プロジェクトの作成。
カスタム コンポーネントの作成。
カスタム コンポーネントのインスタンスの作成。
カスタム コンポーネントのアンロードと再読み込み。
完了すると、ツールボックス に、作成したコンポーネントが設定されていることがわかります。
プロジェクトを作成する
Visual Studio で、
ToolboxExample
(File>New>Project>Visual C#または visual Basic>Classic Desktop>Windows フォーム アプリケーション) という Windows ベースのアプリケーション プロジェクトを作成します。新しいコンポーネントをプロジェクトに追加します。 それを
DemoComponent
と呼びます。詳細については、「方法: 新しいプロジェクト 項目を追加する」を参照してください。
プロジェクトをビルドします。
[ツール] メニューの [オプション] 項目をクリックします。 Windows フォーム デザイナー の項目の下にある [全般] をクリックして、AutoToolboxPopulate オプションが Trueに設定されていることを確認します。
カスタム コンポーネントのインスタンスを作成する
次の手順では、フォームにカスタム コンポーネントのインスタンスを作成します。 ツールボックス 自動的に新しいコンポーネントを考慮するため、他のコンポーネントやコントロールを作成するのと同じくらい簡単です。
フォーム デザイナーでプロジェクトのフォームを開きます。
ツールボックスで、 ToolboxExample コンポーネントという新しいタブをクリックします。
タブをクリックすると、DemoComponentが表示されます。
手記
パフォーマンス上の理由から、ツールボックスの自動入力領域のコンポーネント カスタム ビットマップは表示されず、ToolboxBitmapAttribute はサポートされていません。
ツールボックス にカスタム コンポーネントのアイコンを表示するには、[ツールボックス項目の選択] ダイアログ ボックス使用してコンポーネントを読み込みます。 コンポーネントをフォームにドラッグします。
コンポーネントのインスタンスが作成され、コンポーネント トレイに追加されます。
カスタム コンポーネントのアンロードと再読み込み
ツールボックス では、読み込まれた各プロジェクトのコンポーネントが考慮され、プロジェクトがアンロードされると、プロジェクトのコンポーネントへの参照が削除されます。
ソリューションからプロジェクトをアンロードします。
プロジェクトのアンロードの詳細については、「方法: プロジェクトをアンロードおよび再読み込みする」を参照してください。 保存を求めるメッセージが表示されたら、[はい]
選択します。 新しい Windows アプリケーション プロジェクトをソリューションに追加します。 デザイナーでフォームを開きます。
前のプロジェクトの [ToolboxExample Components] タブが表示されなくなりました。
ToolboxExample
プロジェクトを再読み込みします。[ToolboxExample Components] タブが再び表示されるようになりました。
次の手順
このチュートリアルでは、ツールボックス がプロジェクトのコンポーネントを考慮しますが、ツールボックス もコントロールを考慮に入れていることを示します。 ソリューションからコントロール プロジェクトを追加および削除して、独自のカスタム コントロールを試します。