我面临的一个问题是-我有一个自定义的UserControl,我想添加到我的TabControl作为一个额外的选项卡,所以为了使它,我只是在工具箱中找到我的UserControl,并将其拉到我的TabControl,并立即得到一个错误弹出窗口,其中说
未能加载工具箱项。它将从工具箱中删除
经过研究,我发现了几个这样的答案
https://stackoverflow.com/a/44628024/5709159
还有这个
https://social.msdn.microsoft.com/Forums/vstudio/en-US/77e10b58-43cc-4aab-919f-888f14f99571/x64-class-library-of-user-controls?forum=csharpgeneral的
他们在谈论32位和64位处理之间的不匹配,但我真的不知道如何解决这个问题?比如我需要点击哪里或者我需要重新编译什么才能让它工作?如果有人能翻译我什么是写在这些链接到更清晰的语言,我会很感激。
编辑
我试图添加一个全新的UserControl,这意味着我创建了一个新的UserControl,并且我打开工具箱并将其拉入在选项卡控件中创建的选项卡中,结果我得到了上面的错误。因此,没有构造函数或抢先体验父问题。
关于CPU,我不使用AnyCPU
,我使用x64
,这可能是一个问题吗?另外,为了检查,我不能切换到AnyCPU
,因为我的项目与AnyCPU
不兼容。
3条答案
按热度按时间wbrvyc0a1#
在项目属性中,尝试将构建选项卡中的Platform目标更改为x86。当我遇到类似的问题时,它对我很有效。
3gtaxfhh2#
在我的例子中,情况正好相反:我实现了一个从ElementHost派生的类,作为WPF控件的 Package 器,以便能够将其集成到Winforms中。当我以编程方式将ElementHost添加到表单时,一切都很顺利,但当我想从VS工具箱中拖放它时,我得到了“Failed to load toolbox item”消息。
原因是我使用的是x64版本的Visual Studio,它似乎要求ElementHost派生类位于“Any CPU”程序集中。因此解决方案是将包含控件的程序集设置为“Any CPU”。
toe950273#
对我来说,诀窍是将 *Platform目标 * 切换到 x86(项目属性->构建),然后启动项目以重建它,再次停止它并切换回 Any CPU。之后,我可以以任何我喜欢的方式添加任何UserControl。