我使用VS2010创建了一个C#WinForms应用程序。我是创建用户控件的新手,所以我创建了一个新的用户控件(作为同一个项目的一部分)。
重建项目时,新控件将显示在工具箱中。当我将控件从工具箱拖到窗体上时,我收到以下错误。
无法加载工具箱项“TagGroup”。它将从工具箱中删除。
这也是我创建用户控件的唯一时间。我在网上搜索过,但我发现的大多数答案似乎与将控件放在一个单独的程序集中有关。 (请注意,我发现了很多与我遇到的问题相同的问题。)
有人可以建议我下一步要看哪儿吗?
答案 0 :(得分:34)
我的应用需要是64位。为了在设计器中使用自定义用户控件,我刚刚在我的解决方案中添加了一个新项目。这个新项目使用“AnyCPU”设置并包含我的所有用户控件。
我的解决方案包含以下项目:
像魅力一样工作,而且很干净
顺便说一下,关于这个问题有一个Microsoft support article。
答案 1 :(得分:33)
我终于想出了这个。
我正在使用的项目使用两个类库程序集。虽然这些与我正在讨论的控件无关,但我查看并看到两个库在Properties | Build选项卡中将Platform Target设置为“Any CPU”。
另一方面,我的应用程序将此设置设置为“x64”。通过将我的应用程序设置更改为“任何CPU”,我现在可以将我的用户控件放在我的表单上。
去图......
答案 2 :(得分:6)
我也有这个问题,但答案不适合我。我的项目有一些问题,它只能分别针对x86和x64。换句话说,我不能使用AnyCPU配置(因为我为每个配置引用了不同的库,因为这些库不适合AnyCPU)。
我提出的解决方案是:当我需要使用表单设计器时,我将设置更改为x86。完成工作,然后重新设置为x64并进行测试。问题只发生在设计人员身上,但解决方案构建并运行良好。
答案 3 :(得分:2)
这里的问题相同。我猜这与安装在x64操作系统上的VS2010仍然是一个32位程序的事实有关。
可能想要尝试的另一种解决方案是打开TheFormThisUserControlIsSupposedToBeAddedTo.Designer.cs并使用代码添加用户控件。基本上,你正在做设计师应该做的肮脏的工作。
它并不像听起来那么困难,尤其是考虑到该文件中可能已有大量示例代码(例如,您使用Designer添加的按钮)。唯一困难的部分是确定表格中的正确坐标以放置控件。
最终结果是您无法在Desinger中看到用户控件,但它们会在调试/运行时添加。
答案 4 :(得分:0)
我也遇到过这个问题,但原因不同了。在我的例子中,组件(表单)构造函数或Load事件在其他地方调用了一个方法,该方法使用反射来查找实现某个接口的所有类。
虽然它在运行时工作正常,但它在设计时生成了上述异常。 (键入Initialization exception以Type Load Exception作为内部异常)。
答案 5 :(得分:0)
第二天凌晨3:36的一小时困惑,疲惫的故障排除再次以新的心态轻松解决! 我在控件的文件名中修改了一个简单的拼写错误,所以现在它与UserControl名称相匹配,清理并重新构建,然后让你怪异的叔叔的猫。 :
答案 6 :(得分:-1)
GO项目属性然后' Build'选项卡并检查“目标平台”'是' AnyCPU'。