Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将新的用户控件添加到工具箱或新的Winform?_C#_Winforms_Visual Studio 2008_User Controls - Fatal编程技术网

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

C# 如何将新的用户控件添加到工具箱或新的Winform?,c#,winforms,visual-studio-2008,user-controls,C#,Winforms,Visual Studio 2008,User Controls,我有一个现有的库(不是Winforms应用程序),它向真正的Windows应用程序提供一些Winforms。在这个库中,我想创建一个用户控件来将一些控件分组在一起。为此,我右键单击、添加、用户控件并将一些控件拖到新的用户控件上 到目前为止,一切顺利。用户控件甚至具有必需的用户控件图标。但是,将新用户控件从解决方案资源管理器拖动到新的空白Winform不起作用(我得到一个圆圈,圆圈中有一条线穿过它),将其拖动到工具箱也不起作用(即使当我将其拖动到工具箱上时得到+号) 我是否缺少某种XML魔力或其他

我有一个现有的库(不是Winforms应用程序),它向真正的Windows应用程序提供一些Winforms。在这个库中,我想创建一个用户控件来将一些控件分组在一起。为此,我右键单击、添加、用户控件并将一些控件拖到新的用户控件上

到目前为止,一切顺利。用户控件甚至具有必需的用户控件图标。但是,将新用户控件从解决方案资源管理器拖动到新的空白Winform不起作用(我得到一个圆圈,圆圈中有一条线穿过它),将其拖动到工具箱也不起作用(即使当我将其拖动到工具箱上时得到+号)

我是否缺少某种XML魔力或其他东西来实现这一点



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

假设我理解您的意思:

  • 如果
    UserControl
    位于库中,则可以使用将其添加到工具箱中

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

    使用
    UserControl
    选择您的程序集

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

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


    获取此错误的一种方法是在项目设置为编译为x64时尝试将usercontrol添加到表单中。Visual Studio抛出了一个无用的提示:“加载工具箱项失败。它将从工具箱中删除。”

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


    参考:

    一个用户控件本身不能应用于它。因此,打开另一个winform,该winform将出现在工具箱中。

    我发现用户控件可以存在于同一个项目中。
    正如其他人提到的,AutoToolboxPopulate必须设置为True。
    创建所需的用户控件。
    选择生成解决方案。
    如果新用户控件未显示在工具箱中,请关闭/打开Visual Studio。
    如果用户控件仍然没有显示在工具箱中,请右键单击工具箱并选择“重置工具箱”。然后选择buildsolution。如果它们仍然不存在,请重新启动Visual Studio

    生成解决方案时不得有任何生成错误,否则新的工具箱项将不会添加到工具箱中。

    您可以尝试打开选项->Windows窗体设计器->AutoToolboxPopulate以简化此操作。这样,您所要做的就是重新生成用户控件的解决方案,以显示在工具箱中。@CodyGray:它已经打开,但感谢您的提示。它非常不清楚,特别是在这个库中,我想创建一个用户控件。只需为该UC创建您自己的项目。如果确实要将UC添加到现有项目中,则不要将其添加到工具箱中,而只需打开该项目。生成以将现有控件添加到工具箱中。@HansPassant:我的VS环境显然有问题;生成包含用户控件的项目不会将控件添加到工具箱中,尝试打开“选择项”工具箱对话框时崩溃,而不是通过重置工具箱开始,右键单击+重置。使用Add Reference或Add Project将库添加到您的解决方案中。嗯,我的小型用户控件项目会自动将控件添加到工具箱中,但如果我直接在现有项目中创建用户控件,则不会。另外,我似乎已经问过您是否只构建了您的项目或整个解决方案?我对撞车问题没有答案(我认为这与您的问题无关),您应该为此创建一个新的答案。你觉得怎么样?我试着重建整个解决方案;这并没有改善情况。我现在正在处理崩溃问题。如果控件在列表中,您也可以右键单击并显示全部,但是禁用,您还有另一个问题。在VS 2017中出现此问题。关闭VS 2017并重新打开使用UserControl更新了工具箱。