85


16

UserControlをVisual Studioツールボックスに配置する方法

私は自分のプロジェクトでユーザーコントロールを作成しました。プロジェクトをビルドした後、それをツールボックスに入れて、共通コントロールとして使用する必要があります。 しかし、私はできません。 「UserControl」はプロジェクトのネームスペースにあり、右クリックメニューで「Choose Item」を試しましたが、追加する方法が見つかりませんでした。

11 Answer


104


私はあなたがVS2010を使用していると仮定しています(あなたが質問にタグを付けたものです)VS2008 / 2005のようにツールボックスに自動的に追加するのに問題がありました。 実際には、ツールボックスの自動入力を停止するオプションがあります!

[ツール]> [オプション]> [Windowsフォームデザイナ]> [全般]に移動します。

リストの一番下には、ツールボックス> AutoToolboxPopulateがあり、新規インストールではデフォルトでFalseに設定されています。 trueに設定してから、ソリューションを再構築します。

ソリューション内のユーザーコントロールは、ツールボックスに自動的に追加されるはずです。 ソリューションもリロードする必要があります。


34


ツールバーを右クリックして、コンテキストメニューの[項目を選択]をクリックします。 登録されたコンポーネントのダイアログがポップアップします。 このダイアログで[参照]をクリックして、使用するユーザーコントロールでアセンブリを選択します。

PS. このアセンブリは事前に登録する必要があります。


21


ユーザーコントロールにはパラメーターなしのコンストラクターが必要です。そうしないと、リストに表示されません。 少なくとも、vs2005ではそうでした。


14


VS 2010の使用:

Windows.Formsプロジェクトがあるとします。 UserControl(MyControlなど)をプロジェクトに追加し、すべてを設計します。 次に、ツールボックスに追加します。

プロジェクトが1回正常にビルドされるとすぐに、フレームワークコンポーネントに表示されます。 ツールボックスを右クリックしてコンテキストメニューを表示し、[アイテムの選択…​]を選択して、[。NET Frameworkコンポーネント]タブの下のコントロール(MyControl)の名前を参照します。

DLLを使用する利点:フォームと同じプロジェクトのコントロールを編集でき、フォームは新しいコントロールでビルドされます。 ただし、コントロールはこのプロジェクトでのみ使用できます。

注:コントロールにビルドエラーがある場合、それらを含むフォームに進む前にそれらを解決するか、デザイナーが心臓発作を起こします。


6


多くのユーザーコントロールがありましたが、ソリューションを再構築し、_Choose Items …​_ダイアログでチェックされたにもかかわらず、_Toolbox_に表示することを拒否しました。

溶液:

  1. Solution Explorer I _右クリック_から問題のあるユーザーコントロール ファイルと選択*プロジェクトから除外*

  2. ソリューションを再構築

  3. ユーザーコントロールを右クリックして[プロジェクトに含める]を選択します( _Solution Explorer_で_Show All Files_が有効になっています)

*注*これには、_AutoToolboxPopulate_オプションを有効にする必要もあります。 @DaveFの答えが示唆するように。

別の解決策:これが機能するかどうかはわかりません。既に問題を解決しているので試せませんでしたが、_Choose Items …​_ダイアログからユーザーコントロールのチェックを外した場合、OKを押してから開いてくださいユーザーコントロールを確認しました。 それもうまくいくかもしれません。


4


いくつかの方法があります。

  1. 元のプロジェクトで、ファイル|テンプレートのエクスポート+ 次に、ItemTemplateを選択し、ウィザードに従います。

  2. UserControlを別のClassLibraryに移動します(そして名前空間を修正します) 等)。 +必要なプロジェクトからクラスライブラリに参照を追加します。 GACなどに煩わされるのではなく、DLLファイルだけを気にします。

UserControlを通常のツールボックスに配置することはお勧めしませんが、それは可能です。 @Arsenyからの回答をご覧ください


2


私の知る限り、現在のプロジェクトのユーザーコントロールをツールボックスにドラッグアンドドロップできます。 問題は、ユーザーコントロールがなくなった別のプロジェクトを選択した場合です。 だから私はあなたが別のコントロールライブラリプロジェクトを構築する必要があると思う:

ソリューションに新しいプロジェクトを追加しますが、プロジェクトテンプレートとして[クラスライブラリ]を選択します。 そのプロジェクトで、ユーザーコントロールを追加し、必要なすべての操作を行います。 それが完了したら、それをビルドすると、dllファイルが作成されます(プロジェクトのbin / debugフォルダーで簡単に見つけることができます)。

このdllをツールボックスに追加し(右クリックして[追加]をクリック)、すべてのプロジェクトにそこにとどまります!


2


私の場合、プロジェクトにコントロールが表示されませんでした。 toolBoxを右クリックして[すべて表示]を選択した場合にのみ、それらが表示されましたが、まだ無効にされていました…​

プロジェクトタイプをWindowsアプリケーションからClassLibraryに変更すると修正されました。


1


基本コントロールでジェネリックを使用している場合の基本的な質問。 もし、そうなら:

私たちが制御できると言いましょう:

public class MyComboDropDown : ComboDropDownComon
{
    public MyComboDropDown() { }
}

MyComboDropDownでは、デザイナーを開くことができず、ツールボックスに表示されません。 Why? ベースコントロールがまだコンパイルされていないため-MyComboDropDownがコンパイルされている場合。 これを変更できます:

public class MyComboDropDown : MyComboDropDownBase
{
    public MyComboDropDown() { }
}

public class MyComboDropDownBase : ComboDropDownComon
{

}

再構築後、ツールボックスをリセットするよりも、デザイナーおよびツールボックスでMyComboDropDownを表示できるはずです。


0


デザイナーの問題は、32ビットと64ビットの問題でした。 64ビットアセンブリのコントロールをツールボックスに追加できない、またはVisual Studio IDE内のデザイナーで使用できないの指示に従ってツールボックスにコントロールを追加できます。記事。