【问题标题】:How do I add my new User Control to the Toolbox or a new Winform?如何将我的新用户控件添加到工具箱或新的 Winform?
【发布时间】:2012-02-14 10:09:41
【问题描述】:

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

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

是否有某种 XML 魔法或其他我缺少的东西来完成这项工作?


注意:我在使用 Visual Studio 2008 时遇到了一些问题,我按照here 中的解决方法设法解决了这些问题。现在,我只需重新构建项目,就可以将添加到现有项目中的用户控件放入工具箱中。

【问题讨论】:

  • 您可以尝试打开选项 -> Windows 窗体设计器 -> AutoToolboxPopulate 以简化此操作。这样,您所要做的就是重建用户控件的解决方案以显示在您的工具箱中。
  • @CodyGray:它已经开启,但感谢您的提示。
  • 很不清楚,尤其是Within this library, I would like to create a User Control。只需为该 UC 创建您自己的项目。如果您真的想将 UC 添加到现有项目中,请不要将其添加到工具箱中,只需打开项目即可。构建以将现有控件添加到工具箱中。
  • @HansPassant:我的 VS 环境显然有问题;构建包含用户控件的项目不会将控件添加到工具箱中,并且尝试打开“选择项目”工具箱对话框会导致 VS 崩溃。
  • 先重置工具箱,右键+重置。改为使用添加引用或添加项目将库添加到您的解决方案中。

标签: c# winforms visual-studio-2008 user-controls


【解决方案1】:

假设我明白你的意思:

  1. 如果您的 UserControl 在库中,您可以使用

    将其添加到您的工具箱中

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

    使用UserControl 选择您的程序集。

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

一般来说,无法从解决方案资源管理器中添加控件,只能从工具箱中添加。

【讨论】:

  • 嗯,我的小用户控件项目会自动将控件添加到工具箱中,但如果我直接在现有项目中创建用户控件,则不会。另外,我似乎有this problem.
  • 您是只构建您的项目还是构建整个解决方案?我对崩溃问题没有答案(我认为这与您的问题无关),您应该为此创建一个新答案。你怎么看?
  • 我尝试重建整个解决方案;它没有改善事情。我现在正在解决崩溃问题。
  • 你也可以右键显示全部,如果你的控件在列表中,但是禁用,你有另一个问题。
  • 在 VS 2017 中遇到此问题。关闭 VS 2017 并重新打开使用 UserControl 更新了工具箱。
【解决方案2】:

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

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

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

【讨论】:

  • 使用 Visual Studio 2019/2022,不再需要这个。
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    一个用户控件不能应用到它自己。所以打开另一个winform,它会出现在工具箱中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-17
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-20
      • 2011-04-28
      • 2012-07-24
      相关资源
      最近更新 更多