DLL中没有可以放置在工具箱上的组件。

12

我有一个自定义控件DatePicker,我想将其添加到工具箱中。文件名为BasicFrame.WebControls.BasicDatePicker.dll,我按照以下步骤操作:在工具箱上右键单击>选择元素>浏览 .NET Framework 组件并选择该文件。

但是出现了以下错误信息:

无法在工具箱中放置任何组件。

为什么会出现这个消息,我该如何解决?


1
确保控件继承自System.Windows.Forms.Control类并且是public的。 - Kami
5个回答

48

在某些情况下,您可以使用拖放解决此问题:

  • 打开Windows资源管理器并导航到DLL文件
  • 将DLL文件拖动并放置在Visual Studio工具箱中的位置上,确切地放置您想要的组件

我也在这里工作过。谢谢bluish。 - Scott
在VS2013中工作了!非常感谢。 - user10560917
1
在Visual Studio Community 2017中工作过!非常感谢。 - camino
十年过去了。VS2022,问题依然存在。而你的解决方案奏效了! - undefined

9

您是否检查了自定义类的可见性?

如果您没有将它们声明为public,则默认为internal,因此不能在Visual Studio中使用。


嗨,你是怎么做到的呢?因为我也遇到了同样的问题,但我不知道该怎么办。谢谢。 - Robert Negreanu
查看类,它们应该说“public class”,如果没有,则dll将隐藏它们。 - MikeT
我的默认是公共的,但仍然遇到了同样的问题。 - sam byte

2
有时候拖放功能也会失效。 这种情况下,您可以:
  • 打开Windows资源管理器并导航到DLL文件所在位置
  • 将dll文件复制并直接粘贴到您想要放置控件的工具箱选项卡上。

0
Visual Studio 2019 - 无法让VS2019识别一个简单的用户控件。我发现这是因为控件没有无参数构造函数所致。一旦我确保有一个不带参数的构造函数,该控件就被识别了。我发现我能够使用构造函数链式调用/重载。希望这将帮助其他遇到此问题的人。

0
在我的情况下,问题出在我的MyCSharpLibrary.dll项目的bin文件夹路径太长了。
我不得不将我的组件库复制到更高一级的位置,但肯定之前是可以工作的,可能是因为很久没有重新构建这个项目了,他们可能对路径长度增加了一些限制。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接