用户控件未显示在工具箱中

我有一些UserControls,我在ProjectA中创build。 我有ProjectB,有一个窗体,我想把控制。 这两个项目都在一个解决scheme中。 ProjectB中有一个对ProjectA的引用,所以它可以“看见”UserControls。

但是,用户控件不显示在工具箱中,我拖动到窗体。

我试过重build。 我也删除了“bin”目录来强制重build。

我如何获得VS2008与我的UserControls工具箱?

检查这个设置:

工具>选项> Windows窗体devise器>常规:AutoToolboxPopulate

它应该被设置为True才能工作。

  1. build立你的项目,以确保它编译。

  2. 用您希望用户控制的表单,打开工具箱,右键单击并select“select项目”

  3. 浏览到您在步骤1中编译的.exe或dll文件。

  4. 确保你的用户控件旁边有个打勾,按OK。

  5. 你的用户控件应该出现在工具箱中,所以把它拖到你的表单上。

这是根据卡拉努斯的回答改编的一个类似的问题 。

在我的情况下,AutoToolboxPopulate已经设置(Visual C#2010 Express)。

不过,我不得不从工具箱的属性中激活“全部显示”(右键单击),以实际看到我的新用户控件。

直到现在,我没有问题与usercontrols不显示在工具箱中。 build立该项目,它只是显示。 那么今天不工作。 经过search,我经历了以下,但仍然没有喜乐。

  • 工具>选项> Windows窗体devise器>常规:AutoToolboxPopulate
  • 工具>选项>文本编辑器> XMAL>杂项:AutoToolboxPopulate
  • 将VS设置重置为默认值

所以经过几个小时的尝试,使其无法成功工作,我创build了一个新的WPF Windows项目接受默认名称,并添加一个用户控件。 build立项目和用户控制出现,因为它始终。

然后我认为我的项目或wpf窗口文件可能有问题。 删除了项目,创build了一个新的项目并添加了一个新的控件。 build立的项目,但没有奏效。

我做的唯一不同的是为项目select一个名称,我在名为“WPF应用程序”中包含一个空格。

再次删除项目,并创build一个新的名为“WPFApplication”没有空间,并添加了一个用户控件。 build立它,用户控制出现。

如果您希望usercontrols在构build工具箱中自动显示,请不要在项目名称中使用空格。 希望这篇文章能够挽救别人一大笔浪费的时间。

用户控件可能不会显示在工具箱中的另一个原因是,如果他们没有默认的构造函数。

再次检查你的用户控件是否有一个有效的名字空间。

我刚刚发现没有命名空间的控件不放置在ToolBox中。

通常你需要build立解决scheme。 这几乎总是对我有用。

我有同样的问题。 大量的谷歌search后,我没有find任何东西,但偶然发现,如果你在同一个项目中,你已经创build了用户控制,点击工具箱,并检查“ 显示所有 ”,然后一个组与您的项目名称相同将显示在工具箱的顶部,您可以在其中find用户控件。现在,您可以将控件添加到所需的表单中!

对于可能使用ToolStripItems (例如ToolStripStatusLabel )的人来说,为了让你的派生控件显示在下拉菜单中(例如StatusStrip ), 你需要将该类设置为public然后构build解决scheme。

另外不要忘记你的类的devise器属性,如下所示:

 using System.Windows.Forms.Design; [ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)] public class MyStatusLabel : ToolStripStatusLabel { } 

花了一段时间才弄清楚。 希望这可以节省别人的时间。

我的控制是公开的,在“select工具箱项目”对话框中进行了检查,但是仍然没有显示出来。

这是最后为我工作的:

右键单击工具箱中的某个地方,然后点击“select项目”。 当我发现我的物品时,它已经被检查。 我然后取消选中该项目,然后单击确定。 接下来,我再次右键单击工具箱,并search我的项目…它不见了,所以我点击浏览,导航到OBJ / x86 /debugging文件夹,并select我的EXE。 该项目然后正确地添加到工具箱。

我认为这是一个VS错误。

除了已经给出的所有说明(工具>选项> Windows窗体devise器>常规:AutoToolboxPopulate)+您需要构build解决scheme(这对我来说很明显),您可能不得不注意类访问修饰符:它必须是上市。 我刚刚创build了一个控件,没有出现在工具箱列表中,我不知道为什么。 所以设置后

 public class yourClass:control {} 

比列表中出现的要多。 ;)希望这会帮助别人。

检查你的编译输出目录。 如果由于某种原因,你正在build立你的输出,而不是project bin目录,你的控件将不会显示在你的工具箱中。

这是我的问题:我添加了一个新的构造函数,我的控件接受了一些参数,但我没有明确地重新声明空的构造函数! 工具箱只能包含具有空构造函数的控件。 一般来说,当你在VB中devise一个类时,它有一个隐式定义的空构造函数(意思是你不需要声明一个)。 但是,一旦你开始devise你自己的构造函数,这个空的构造函数就会消失,所以你需要在代码中明确地重新定义它。 无论如何,我知道最有经验的VB编码器已经知道这一切,但希望这可以帮助像我这样的新手:)。

上述所有可能失败。

我通过创build一个新的用户控件(TestControl)来修复它,并且它触发了Visual Studio,将我的项目的控件选项卡+控件重新添加到工具箱中。 然后我刚刚删除了testing控件。

顺便说一下,在最近安装了一个VS 2008自动化的Windows更新之后,这发生在我身上。

我通常做的是创build一个新的选项卡,并将exe / dll添加到该选项卡…由于加载时间和一般麻烦,不太舒服的解决scheme。

一位朋友向我展示了一种加快速度的方法。 而不必点击工具箱等中的“select项目…”,您可以创build一个名为MyCustomControls的文件,您可以创build自定义控件。

现在,您只需执行“select项目…”并添加此文件一次。 如果您以后决定添加一个新的控件,请在MyCustomControls创build它,然后重新生成。
那么你的工具箱将有你的新的控制。 (如果你有AutoToolboxPopulate话,它会自动显示一个常规编译)

这是不幸的,因为通常你想把课程分成“每个文件一个类”。 你不得不毁掉你的代码架构,因为VS不想以你自己的方式去做。 🙂

我不太喜欢这个解决scheme,但是如果你需要快速做一些事情,而且你不关心文件中的多个用户控件,或者只是懒惰的,这可能适合你。 🙂

那么,除了这个工作,没有什么是为我工作…

  1. 我在我的解决scheme中创build了一个新项目,对于这个项目来说,它是可行的,所以我将开始使用这个项目
  2. 玩arond,我开始调整csproj文件的xml,以找出在同一个解决scheme,我的其他项目有什么问题,然后我重置它,因为它似乎没有工作
  3. 现在它在我的项目中再次神奇地工作

不是一个很好的解决scheme,但你应该尝试这些步骤

  1. 看看它是否在一个全新的解决scheme/项目中工作。
  2. 看看它是否在同一个解决scheme中的一个全新的项目中工作
  3. 如果#2的工作,也许比较.csproj文件…不知何故我开始工作,当我这样做(这是非常令人沮丧的)。

提供你已经试过摆弄:

  • 工具>选项> Windows窗体devise器>常规:AutoToolboxPopulate
  • 工具>选项>文本编辑器> XMAL>杂项:AutoToolboxPopulate
  • 创build了一个默认构造函数
  • build立您的项目/重置工具箱,并手动添加您的选项卡

但你仍然看到它变灰了..

检查你的path长度,并检查绝对path中使用的 字符

我有一个项目驻留在“C:\ Users \ myName \ myCompany \ R&D \ Projects”
几个小时后发现“研发”是问题。
”不允许在我的工具箱中启用我的用户控件项目。

几小时前,我陷入了这个陷阱。
我有一个.NET 2.0的Windows应用程序项目与一些自定义UserControls; 它工作正常。 所以我决定在子文件夹中排列我的文件,使我的项目更清洁一些。
之后,Visual Studio 2010devise器停止加载我的表单,ToolBox将不再显示我的控件。
我吓坏了,移回项目根源文件,重置ToolBox,但似乎没有任何工作。 之后,我记得我用ReSharper“删除未使用的引用”,所以我试图把未使用的引用 ,特别是System.Data :问题解决了! :哦,我不能说你为什么,但是这对我有效。
希望我的经验能帮助别人。 🙂
再见,南多

如果您仍然无法find您的vstudio工具箱未安装usercontrols的原因。 然后你可以用另一个visual studiodebuggingvstudio。 在这里你可以find如何 。

如果您已经尝试了所有其他的答案,但仍然无法正常工作,下面为我解决了这个问题:

  • 右键单击包含您的控件的项目。
  • selectProperties
  • 在“ Build设置”类别中,确保选中“ Register for COM interop

在我的情况下,错误的原因是我的控制的.dllpath的多余的长度。 我缩小了一点,一切都变好了。

我还发现,path中的特殊符号(例如,我用#)会影响控制显示。

希望它解决了这个问题。

在你的UserControl中,确保New被声明为Public 。 如果它只是声明为“新build”(默认为“朋友”),则不会显示。

症状1:窗体,用户控件和组件的devise视图失败!

  • 我的表单devise视图失败,味精“无法find”用户控制“。”
  • 如果我能得到表单devise视图的工作,它是非常不稳定和腐败所有地狱W /任何改变。

症状2: 工具箱中的用户控件和组件

  • 在工具箱中显示为灰色,并显示一个乱码
  • “工具箱”上下文菜单中的“select项目”显示乱码名称和无名称空间

解决scheme:在用户控件和组件的vb后面将范围设置为公共

检查项目path,避免

我已经将我的解决scheme从drive:\work\c#\folder\drive:\work\folder ,并解决了问题。

我正在尝试构build一个仅适用于x64的应用程序,所以当然我的平台目标被设置为x64

但是,即使在2016年,Visual Studio( devenv.exe )仍然是一个32位进程,无法加载64位程序集。 要检查您的Visual Studio的位,打开任务pipe理器并检查进程的名称*32

解决方法以查看工具箱中的控件:将平台目标设置为项目设置中的Any CPU 。 如有必要,请执行“debugging和发布”构build。

当我试图将我的UserControl添加到工具箱(右键单击工具箱,select项目,select我的DLL),它会显示一条消息,说我的DLL中没有控件。

无论如何,这个问题已经解决了,试图在VS中的DLL中创build一个表单并添加UserControl。 显示的错误消息说没有默认的构造函数

 public UserControl() { ... } 

devise者需要这个,因为它不知道什么有效的参数。 一旦我将一个空白的构造函数添加到用户控件,它被添加到工具箱没有问题。

如上所述,您应该告诉visual studio将您的usercontrol加载到工具箱中。

 [ToolboxItem(true)] public class PanelTitle : LabelControl { // Whatever code to override LabelControl here... } 

尝试添加自定义控件之前,请确保它与当前项目的.Net版本兼容。

我正试图添加一个自定义控件工具箱的Windows CE 5.0和VS2008上的.Net Compact v3.5的项目。 我做了所有以前的build议,但没有任何工作。 当“全部显示”被选中但显示为灰色时,即使在“select项目”菜单中也会显示该控件。

我使用.Net v2.0创build了一个新项目,并且工作完美。

你好它的答案Ctrl + Alt + X采取这个和以后你有TOOLBOX 🙂