プロジェクトでユーザーコントロールを作成し、プロジェクトをビルドした後、それをツールボックスに入れて、コモンコントロールとして使用する必要があります。でもできません。これUserControl
は私のプロジェクト名前空間にありChoose Item
、右クリックメニューを試しましたが、追加する方法が見つかりませんでした。
回答:
私はあなたがVS2010を使用していると想定しています(これが質問にタグを付けたものです)VS2008 / 2005のようにツールボックスに自動的に追加するのに問題がありました。実際には、ツールボックスの自動入力を停止するオプションがあります。
[ツール]> [オプション]> [Windowsフォームデザイナー]> [全般]に移動します
リストの下部には、ツールボックス> AutoToolboxPopulateがあり、新規インストールではデフォルトでFalseに設定されています。trueに設定して、ソリューションを再構築します。
ソリューションのユーザーコントロールのprestoは、ツールボックスに自動的に追加される必要があります。ソリューションをリロードする必要がある場合もあります。
UserControl
現在のプロジェクトの外にある場合は、@ Arsenyの指示に従う必要があります。
ツールバーを右クリックして、コンテキストメニューの[アイテムを選択]をクリックします。登録されたコンポーネントのダイアログがポップアップします。このダイアログで[参照]をクリックして、使用するユーザーコントロールを含むアセンブリを選択します。
PS。このアセンブリは事前に登録する必要があります。
ユーザーコントロールにパラメーターのないコンストラクターが必要であるか、リストに表示されないことがわかりました。少なくとも、vs2005ではそうでした。
VS 2010の使用:
Windows.Formsプロジェクトがあるとします。UserControl(たとえばMyControl)をプロジェクトに追加し、すべてを設計します。次に、それをツールボックスに追加します。
プロジェクトが1回正常にビルドされるとすぐに、フレームワークコンポーネントに表示されます。ツールボックスを右クリックしてコンテキストメニューを表示し、[Choose Items ...]を選択して、[。NET Framework Components]タブでコントロール(MyControl)の名前を参照します。
DLLを使用する場合の利点:フォームと同じプロジェクトでコントロールを編集でき、フォームは新しいコントロールでビルドされます。ただし、コントロールはこのプロジェクトでのみ使用できます。
注:コントロールにビルドエラーがある場合は、それらを解決してから、フォームを含む場所に移動してください。そうでない場合、デザイナーが心臓発作を起こします。
多くのユーザーコントロールがありましたが、ソリューションを再構築して[ アイテムの選択 ]ダイアログでチェックしたにもかかわらず、1つは[ ツールボックス]に表示することを拒否しました。
解決:
なお、これはまた、あなたが持っている必要がありAutoToolboxPopulateのオプションが有効。@DaveFの回答が示唆するように。
代替ソリューション:私はこの作品かはわからない、と私はすでに私の問題を解決するため、私はそれを試してみませんでしたが、あなたはからユーザーコントロールをオフにするとアイテムを選択してください...ダイアログ、ヒットOK、それはバックアップ開かユーザーコントロールを確認しました。それもうまくいくかもしれません。
いくつかの方法があります。
元のプロジェクトで、[ファイル]、[テンプレートのエクスポート]の順に選択し、
次に[アイテムテンプレート]を選択して、ウィザードに従います。
UserControlを別のClassLibraryに移動します(名前空間を修正します)。
必要なプロジェクトからクラスライブラリに参照を追加します。GACやその他のことを気にしないでください。DLLファイルだけです。
通常のツールボックスにUserControlを配置することはお勧めしませんが、それは可能です。@Arsenyからの回答をご覧ください
基本コントロールでジェネリックを使用している場合の基本的な質問。もし、そうなら:
私たちがコントロールしているとしましょう:
public class MyComboDropDown : ComboDropDownComon<MyType>
{
public MyComboDropDown() { }
}
MyComboDropDownはその上でデザイナーを開くことができず、ツールボックスに表示されません。どうして?ベースコントロールがまだコンパイルされていないため-MyComboDropDownがコンパイルされたとき。次のように変更できます。
public class MyComboDropDown : MyComboDropDownBase
{
public MyComboDropDown() { }
}
public class MyComboDropDownBase : ComboDropDownComon<MyType>
{
}
再構築後、ツールボックスをリセットすると、デザイナーとツールボックスにMyComboDropDownが表示されます。
私のデザイナーの問題は32ビット対64ビットの問題でした。「64ビットアセンブリからコントロールをツールボックスに追加できない、またはVisual Studio IDEの MS KB記事内のデザイナーで使用できない」の手順に従って、ツールボックスにコントロールを追加できます。
再コンパイルは私のためのトリックをしました!