winforms 未能加载工具箱项,它将从工具箱中删除,有什么方法可以解决它?

xriantvc  于 2023-08-07  发布在  其他
关注(0)|答案(3)|浏览(389)

我面临的一个问题是-我有一个自定义的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不兼容。

wbrvyc0a

wbrvyc0a1#

在项目属性中,尝试将构建选项卡中的Platform目标更改为x86。当我遇到类似的问题时,它对我很有效。

3gtaxfhh

3gtaxfhh2#

在我的例子中,情况正好相反:我实现了一个从ElementHost派生的类,作为WPF控件的 Package 器,以便能够将其集成到Winforms中。当我以编程方式将ElementHost添加到表单时,一切都很顺利,但当我想从VS工具箱中拖放它时,我得到了“Failed to load toolbox item”消息。
原因是我使用的是x64版本的Visual Studio,它似乎要求ElementHost派生类位于“Any CPU”程序集中。因此解决方案是将包含控件的程序集设置为“Any CPU”。

toe95027

toe950273#

对我来说,诀窍是将 *Platform目标 * 切换到 x86(项目属性->构建),然后启动项目以重建它,再次停止它并切换回 Any CPU。之后,我可以以任何我喜欢的方式添加任何UserControl。

相关问题