我使用VS2010创建了一个C# WinForms应用程序,现在想要创建一个新的用户控件(在同一项目中)。但是,由于我不熟悉创建用户控件,当我将新的控件拖到表单上时,会出现以下错误:
无法加载工具箱项“TagGroup”,该项将从工具箱中删除。
这已经是我第二次创建用户控件时出现这种情况了。我在网上搜索过,但大多数答案都似乎与将控件放在单独的程序集中有关。(注意,我找到了很多遇到我同样问题的人提出的问题。)
请问有什么建议或者下一步我应该去哪里寻找解决方法?
我使用VS2010创建了一个C# WinForms应用程序,现在想要创建一个新的用户控件(在同一项目中)。但是,由于我不熟悉创建用户控件,当我将新的控件拖到表单上时,会出现以下错误:
无法加载工具箱项“TagGroup”,该项将从工具箱中删除。
这已经是我第二次创建用户控件时出现这种情况了。我在网上搜索过,但大多数答案都似乎与将控件放在单独的程序集中有关。(注意,我找到了很多遇到我同样问题的人提出的问题。)
请问有什么建议或者下一步我应该去哪里寻找解决方法?
我的应用程序需要是64位的。为了在设计器中使用自定义用户控件,我只需向解决方案添加一个新项目。这个新项目使用“AnyCPU”设置,并包含所有我的用户控件。
我的解决方案包含以下项目:
做起来非常好,而且很干净
顺便说一下,有一个关于这个问题的Microsoft支持文章。
我终于弄明白了。
我正在处理的项目使用了两个类库程序集。虽然它们与我所讨论的控件无关,但我查看后发现这两个库都在“属性|生成”选项卡中设置了平台目标为“Any CPU”。
另一方面,我的应用程序将此设置设置为“x64”。通过将我的应用程序设置更改为“Any CPU”,我现在可以将我的用户控件放置到我的表单上。
去理解吧...
我也遇到了这个问题,但是该答案并不能完全解决我的问题。我的项目存在一些问题,只能针对x86和x64进行独立的目标设置。换句话说,我无法使用 AnyCPU 配置(因为我为每个配置引用不同的库,由于这些库不适合 AnyCPU)。
我想出的解决方案是:当我需要使用窗体设计器时,我将设置更改为 x86。完成工作后,将其设置回 x64 并进行测试。问题仅发生在设计器中,但解决方案可以成功构建和运行。
我也有同样的问题。我猜测这与在x64操作系统上安装的VS2010仍然是一个32位程序有关。
另一种可能要尝试的替代解决方案是,简单地打开TheFormThisUserControlIsSupposedToBeAddedTo.Designer.cs并使用代码添加用户控件。基本上,您正在做设计师应该做的脏活。
这并不像听起来那么难,尤其是考虑到该文件中可能已经有大量示例代码(例如您使用设计器添加的按钮)。唯一困难的部分是找出在表单中放置控件的正确坐标。
最终结果是您不能在Desinger中看到用户控件,但在调试/运行时它们会被添加。