73

ProjectA で作成した UserControls がいくつかあります。コントロールを配置したいWindowsフォームを持つProjectBがあります。これらのプロジェクトは両方とも 1 つのソリューションにあります。ProjectB から ProjectA への参照があるため、UserControls を「見る」ことができます。

ただし、Windows フォームにドラッグするための UserControls がツールボックスに表示されません。

再構築してみました。また、「bin」ディレクトリを削除して、すべてを強制的に再構築しました。

VS2008 でツールボックスに UserControls を設定するにはどうすればよいですか?

4

29 に答える 29

82

この設定を確認します。

ツール > オプション > Windows フォーム デザイナー > 一般 : AutoToolboxPopulate

これを機能させるには、True に設定する必要があります。

于 2008-11-13T20:12:28.177 に答える
33
  1. プロジェクトをビルドして、コンパイルされることを確認します。

  2. ユーザーが制御するフォームでツールボックスを開き、右クリックして[アイテムを選択]を選択します

  3. 手順1でコンパイルした.exeまたはdllを参照します。

  4. ユーザーコントロールの横にチェックマークが付いていることを確認し、[OK]を押します。

  5. ユーザーコントロールがツールボックスに表示されるはずなので、フォームにドラッグします。

これは、同様の質問に対するCalanusの回答から採用されています。

于 2009-11-24T20:14:17.823 に答える
20

私の場合、AutoToolboxPopulate は既に設定されています (Visual C# 2010 Express)。

ただし、新しいユーザー コントロールを実際に表示するには、ツールボックスのプロパティ (右クリック) から [すべて表示] を有効にする必要がありました。

于 2010-07-22T03:06:46.107 に答える
11

これまで、ユーザー コントロールがツールボックスに表示されなくても問題はありませんでした。プロジェクトをビルドすると、それが表示されます。それから今日は働いていません。検索の後、私は次のことを行いましたが、まだ喜びはありません.

  • ツール > オプション > Windows フォーム デザイナー > 一般 : AutoToolboxPopulate
  • ツール > オプション > テキスト エディター > XMAL > その他 : AutoToolboxPopulate
  • VS 設定をデフォルトにリセットする

そのため、成功せずに動作させるために数時間いじり回した後、デフォルト名を受け入れる新しい WPF Windows プロジェクトを作成し、ユーザーコントロールを追加しました。プロジェクトをビルドすると、ユーザー コントロールが以前と同じように表示されました。

次に、プロジェクトまたは wpf ウィンドウ ファイルに何か問題があるのではないかと考えました。プロジェクトを削除し、新しいプロジェクトを作成して、新しいコントロールを追加しました。プロジェクトをビルドしましたが、うまくいきませんでした。

私が違うことをしたのは、プロジェクトの名前を選択することだけでした.「WPFアプリケーション」という名前にスペースを含めました.

プロジェクトを再度削除し、スペースなしで「WPFApplication」と呼ばれる新しいプロジェクトを再度作成し、ユーザー コントロールを追加しました。それを構築すると、ユーザーコントロールが表示されました。

ビルド時にツールボックスにユーザー コントロールを自動的に表示する場合は、プロジェクト名にスペースを使用しないでください。願わくば、この投稿が他の誰かの無駄な時間を大幅に節約できることを願っています。

于 2010-12-05T08:31:40.637 に答える
6

ユーザー コントロールがツールボックスに表示されないもう 1 つの理由は、既定のコンストラクターがない場合です。

于 2012-04-03T10:36:30.777 に答える
5

また、ユーザー コントロールに有効な名前空間があることを再確認してください。

名前空間のないコントロールがツールボックス内に配置されていないことがわかりました。

于 2009-03-23T08:44:07.557 に答える
4

通常、ソリューションを構築する必要があります。それはほとんどいつも私のために働きます。

于 2008-11-13T20:00:36.517 に答える
3

私も同じ問題を抱えていました。何度もグーグルした後、何も見つかりませんでしたが、ユーザーコントロールを作成したのと同じプロジェクトでツールボックスをクリックし、[すべて表示]をオンにすると、グループが表示されることがわかりました。プロジェクトと同じ名前のが、ユーザーコントロールを見つけることができるツールボックスの上部に表示されます。これで、目的のフォームにコントロールを追加できます。

于 2011-11-21T08:18:03.703 に答える
3

で作業している可能性のある人ToolStripItems(たとえばToolStripStatusLabel)の場合、派生コントロールをドロップダウンメニュー(からのコントロールなど)に実際に表示するにはStatusStrip、クラスを設定してソリューションを構築する必要があります。public

また、次のようなクラスのデザイナー属性を忘れないでください。

using System.Windows.Forms.Design;

[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public class MyStatusLabel : ToolStripStatusLabel
{
}

それを正しくするためにしばらく時間がかかりました。うまくいけば、これは他の誰かの時間を節約することができます。

于 2011-11-23T00:12:55.543 に答える
3

私のコントロールはパブリックで、[ツールボックス アイテムの選択] ダイアログでチェックされましたが、まだ表示されませんでした。

これが最終的に私のために働いたものです:

ツールボックスのどこかを右クリックし、[アイテムの選択] をクリックします。私が商品を見つけたとき、それはすでにチェックされていました。次に、項目のチェックを外して、[OK] をクリックしました。次に、ツールボックスをもう一度右クリックしてアイテムを検索しました... アイテムがなくなっていたので、[参照] をクリックし、obj/x86/debug フォルダーに移動して、exe を選択しました。その後、アイテムはツールボックスに正しく追加されました。

VSのバグだと思います。

于 2013-01-10T20:36:39.853 に答える
3

与えられたすべての指示 (Tools > Options > Windows Forms Designer > General : AutoToolboxPopulate) とは別に、ソリューションを構築する必要があります (これは私にとって明らかです)。おそらく、クラス アクセス修飾子に注意を払う必要があります。公衆。コントロールを作成したばかりで、ツールボックス リストに表示されず、その理由がわかりませんでした。なのでセット後

public class  yourClass:control {}

リストに表示されたよりも。;) これが他の人に役立つことを願っています。

于 2013-02-20T07:35:24.300 に答える
2

ビルド出力ディレクトリを確認してください。何らかの理由で、プロジェクトの bin\ ディレクトリ以外の場所に出力をビルドしている場合、コントロールはツールボックスに表示されません。

于 2011-11-21T21:21:34.930 に答える
1

x64 のみのアプリケーションをビルドしようとしていたので、プラットフォーム ターゲットはx64もちろんに設定されていました。

ただし、2016 年になっても、Visual Studio ( devenv.exe) はまだ 32 ビット プロセスであり、64 ビット アセンブリを読み込むことはできません。Visual Studio のビット数を確認するには、タスク マネージャーを開き*32、プロセスの名前を確認します。

ツールボックスでコントロールを表示するための回避策:Any CPUプロジェクト設定でプラットフォーム ターゲットを に設定します。必要に応じて、デバッグ ビルドとリリース ビルドでこれを行います。

于 2016-07-14T19:16:26.513 に答える
1

私の場合、エラーの理由は、コントロールの .dll へのパスが長すぎたためです。私はそれを少し縮小し、すべてが正常に機能するようになりました。

また、パス内の特殊記号 (たとえば、# を使用) がコントロールの表示に影響することもわかりました。

問題が解決することを願っています。

于 2013-10-22T09:47:08.253 に答える
1

他のすべての回答を試してうまくいかない場合は、次の方法で修正しました。

  • コントロールを含むプロジェクトを右クリックします。
  • を選択しPropertiesます。
  • Build設定カテゴリで、がRegister for COM interopチェックされていることを確認します。
于 2013-08-09T17:09:52.110 に答える
1

すでにいじってみた場合:

  • ツール > オプション > Windows フォーム デザイナー > 一般 : AutoToolboxPopulate
  • ツール > オプション > テキスト エディター > XMAL > その他 : AutoToolboxPopulate
  • デフォルトのコンストラクタを作成しました
  • プロジェクトをビルドする/ツールボックスをリセットして手動でタブを追加する

それでも、あなたはそれが灰色になっているのを見ます..

パスの長さを確認し、絶対パスで使用されている文字を確認してください。

「C:\Users\myName\myCompany\R&D\Projects」にあるプロジェクトが
あり、数時間後、「R&D」が問題であることがわかりました.
&」は、ユーザーコントロール項目を有効にすることを許可しませんでした私の道具箱。

于 2012-06-09T19:31:23.997 に答える
1

上記のすべてが失敗する可能性があります。

新しいユーザー コントロール (TestControl) を作成して修正したところ、Visual Studio がトリガーされ、プロジェクトのコントロール タブ + コントロールがツールボックスに魔法のように追加されました。次に、テスト コントロールを削除しました。

ところで、これは、VS 2008 自動化された Windows 更新プログラムを最近インストールした後に私に起こりました。

于 2011-05-25T21:58:12.493 に答える
1

まあ、これがうまくいったことを除いて、私にとっては何もうまくいきませんでした...

  1. ソリューションで新しいプロジェクトを作成しましたが、このプロジェクトでは機能するので、これを使い始めるつもりでした
  2. 遊んで、csprojファイルのxmlを微調整して、同じソリューションの他のプロジェクトの何が問題なのかを調べ、機能していないように見えたのでリセットしました
  3. 私のプロジェクトで再び魔法のように機能するようになりました

あまり良い解決策ではありませんが、次の手順を試してください

  1. 新しいソリューション/プロジェクトで機能するかどうかを確認してください。
  2. 同じソリューションの新しいプロジェクトで機能するかどうかを確認する
  3. #2が機能した場合、おそらく.csprojファイルを比較してください...これを行っている間に、どういうわけか私のファイルが再び機能し始めました(これは非常にイライラします)。
于 2012-06-08T14:13:46.173 に答える
1

それでも vstudio ツールボックスにユーザー コントロールが入力されていない理由が見つからない場合。その後、別のビジュアル スタジオで vstudio をデバッグできます。ここで方法を見つけることができます

于 2013-03-22T07:56:33.913 に答える
1

私が通常行うことは、新しいタブを作成し、そのタブにexe / dllを追加することです...ロード時間と一般的な面倒のため、そのソリューションにはあまり慣れていません。

友人がこれをスピードアップする方法を教えてくれました。作成する新しいコントロールごとに、ツールボックスなどで [項目を選択...] をクリックする代わりに、という名前のファイルを作成しMyCustomControls、そこでカスタム コントロールを作成できます。

これで、「アイテムを選択...」を実行して、このファイルを 1 回追加するだけで済みます。後で新しいコントロールを追加する場合は、 で作成してMyCustomControlsから再構築します。
次に、ツールボックスに新しいコントロールが追加されます。(持っていれば通常コンパイルで自動表示されるとAutoToolboxPopulate思います)

多くの場合、クラスを「ファイルごとに1つのクラス」に分割したいため、これは残念です。VS が自分のやり方でやりたくないという理由だけで、コード アーキテクチャを台無しにしなければならないのは恐ろしいことです。:)

私もこのソリューションにはあまり慣れていませんが、何かをすばやく実行する必要があり、ファイル内の複数のユーザー コントロールを気にしない場合や怠けている場合は、これが適している可能性があります。:)

于 2009-11-04T09:01:47.463 に答える
1

私はほんの数時間前にこの罠に陥りました。
いくつかのカスタム UserControls を含む .NET 2.0 Windows アプリケーション プロジェクトがあります。それはうまくいきました。そこで、プロジェクトを少しきれいにするために、ファイルをサブフォルダーに並べることにしました。
その後、Visual Studio 2010 デザイナーがフォームの読み込みを停止し、ToolBox にコントロールが表示されなくなりました。
プロジェクト ルートにソース ファイルを戻し、ToolBox をリセットしましたが、何も機能していないようでした。その後、ReSharper「未使用の参照を削除」を使用したことを思い出したので、未使用の参照、特にSystem.Dataを元に戻そうとしました:問題が解決しました! :O 理由は言えませんが、これでうまくいきました。 私の経験が誰かの役に立てば幸いです。:) さようなら、ナンド

于 2012-07-03T14:56:13.450 に答える
0

症状 1:フォーム、ユーザー コントロール、およびコンポーネントのデザイン ビューが失敗しました。

  • フォームのデザイン ビューが失敗し、「'User Control' が見つかりません」というメッセージが表示されました。
  • フォームのデザイン ビューを機能させることができたとしても、それは非常に不安定で、変更を加えると完全に壊れてしまいます。

症状 2:ツールボックスの UserControl とコンポーネント

  • ツールボックスでグレー表示され、文字化けした名前が表示されました
  • ツールボックスのコンテキスト メニューの [アイテムの選択] で、名前が文字化けして名前空間が表示されない

解決策: UserControl の背後にある vb でスコープをPublicに設定し、 & コンポーネント

于 2014-04-01T16:57:57.017 に答える
0

UserControl をツールボックスに追加しようとすると (ツールボックスを右クリックし、項目を選択し、DLL を選択します)、DLL にコントロールがないというメッセージが表示されます。

とにかく、VSのDLLにフォームを作成してUserControlを追加することで、問題は解決しました。デフォルトのコンストラクターが存在しないというエラー メッセージが表示される

public UserControl() {
...
}

有効な引数が何であるかがわからないため、設計者はこれを必要とします。空のコンストラクターを UserControl に追加すると、問題なくツールボックスに追加されました。

于 2013-01-29T01:18:14.873 に答える
0

UserControl で、 New がPublicと宣言されていることを確認します。Sub New (デフォルトは Friend) と宣言されているだけでは表示されません。

于 2014-02-27T08:35:36.110 に答える
0

プロジェクト パスを確認し、&#などを避けます。

ソリューションを から に移動しdrive:\work\c#\folder\drive:\work\folder問題を解決しました。

于 2014-05-07T10:58:01.137 に答える