如何将新的用户控件添加到工具箱或新的Winform中?


70

我有一个现有的库(不是Winforms应用程序),可以向真正的Windows应用程序提供一些Winforms。在此库中,我想创建一个用户控件以将某些控件组合在一起。为此,我右键单击“添加”,“用户控件”,然后将一些控件拖到新的“用户控件”上。

到现在为止还挺好。用户控件甚至具有必需的用户控件图标。但是,将新的用户控件从解决方案资源管理器中拖动到新的空白Winform上是行不通的(我在其中画出一条带圆圈的圆),并且将其拖动到工具箱上也行不通(即使我获得了+号)当我将其拖到工具箱上时)。

是否有某种XML魔术或其他我无法实现的功能?


注意:我在Visual Studio 2008中遇到了一些问题,可以通过遵循在此处找到的解决方法来设法解决。现在,只需重建项目,我就可以将添加到现有项目中的用户控件添加到工具箱中。


14
您可以尝试打开选项-> Windows窗体设计器-> AutoToolboxPopulate,以使此操作更容易。这样,您所需要做的就是为用户控件重建解决方案,以使其显示在工具箱中。
科迪·格雷

@CodyGray:它已经打开了,但是谢谢你的提示。
罗伯特·哈维

尤其不清楚Within this library, I would like to create a User Control。只需为该UC创建您自己的项目。如果您确实要将UC添加到现有项目中,则不要将其添加到工具箱中,而只需打开项目即可。进行构建以将现有控件添加到工具箱中。
汉斯·帕桑

@HansPassant:我的VS环境显然存在问题;生成包含用户控件的项目不会将控件添加到工具箱,并且尝试打开“选择项”工具箱对话框会使VS崩溃。
罗伯特·哈维

首先重置工具箱,右键单击+重置。可以使用“添加引用”或“添加项目”将库添加到解决方案中。
汉斯·帕桑

Answers:


97

假设我了解您的意思:

  1. 如果您UserControl在库中,可以使用以下命令将其添加到工具箱中

    工具箱->右键单击->选择项目->Browse

    使用选择您的程序集UserControl

  2. 如果UserControl是项目的一部分,则仅需要构建整个解决方案。之后,您UserControl应该出现在工具箱中。

通常,无法从解决方案资源管理器添加控件,只能从工具箱添加控件。

在此处输入图片说明


嗯,好吧,我的另一面User Control项目会自动将控件添加到工具箱中,但是如果我直接在现有项目中创建User Control则不会。另外,我似乎有这个问题。
罗伯特·哈维

2
您仅构建项目还是构建整个解决方案?我没有崩溃问题的答案(我认为这与您的问题无关),您应该为此创建一个新的答案。你怎么看 ?
dknaack 2012年

我尝试对整个解决方案进行重建;它没有改善。我正在解决崩溃问题。
罗伯特·哈维

3
您还可以右键单击并显示所有内容(如果您的控件在列表中,但是禁用),则还有另一个问题。
Thomas

4
在VS 2017中存在此问题。关闭VS 2017并重新打开,使用UserControl更新了工具箱。
iCode

7

解决此错误的一种方法是,在项目设置为x64编译时,尝试向表单添加用户控件。Visual Studio抛出无益的信息:“无法加载工具箱项。它将从工具箱中删除。

解决方法是使用“任何CPU”进行设计,并根据需要编译为x64。

参考:https : //support.microsoft.com/en-us/kb/963017


2

我发现用户控件可以存在于同一项目中。
正如其他人提到的那样,AutoToolboxPopulate必须设置为True。
创建所需的用户控件。
选择构建解决方案。
如果新的用户控件未显示在工具箱中,请关闭/打开Visual Studio。
如果用户控件仍未出现在工具箱中,请右键单击该工具箱,然后选择“重置工具箱”。然后选择构建解决方案。如果它们仍然不存在,请重新启动Visual Studio。
构建解决方案时,不得有任何构建错误,否则新的工具箱项将不会添加到工具箱中。


0

不能将一个用户控件自己应用。因此,打开另一个Winform,一个将出现在工具箱中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.