我有一个无法解决的小问题,虽然不是很重要,但是很尴尬。
我有一个使用名为“ UserControl_Grille”的控件的WindowsForm应用程序“ MyApp”,有一天,我在解决方案中创建了一个文件夹来整理表单和控件。从今天开始,当我想向表单中添加控件(甚至是本机.NET控件)时,我在控制台中遇到了以下错误:
类型'MyApp.UserControl_Grille'未定义
要修复此问题,我要在InitializeComponent方法中进入“ MyApp.Designer”,以找到并将“ MyApp.UserControl_Grille” 替换为“ UserControl_Grille” < / p>
但是不幸的是,每次我向表单添加新控件时,我都必须再次执行此操作。.
有人想一劳永逸地解决它吗? 谢谢
答案 0 :(得分:0)
我在一个项目中发生了这种情况,在该项目中我定义了一个与我的项目同名的子命名空间(根命名空间)。当您的项目中的代码如下所示时,就会发生这种情况:
Namespace [Name of your Project/Root Namespace]
[...]
End Namespace
此操作的结果是您的项目同时包含“ MyApp”命名空间和“ MyApp.MyApp”命名空间(如果您查看项目的对象浏览器,则可以自己看到)。这种情况会在设计器文件中引起解析冲突,从而使它在自定义控件的错误名称空间下出现。
几种解决方法:
选项1是最简单的选项,应立即解决该错误。
选项2是下一个最简单的方法,但是,例如,如果将子命名空间重命名为“ NewName”,则Designer文件中所有对“ UserControl_Grille”的引用都将错误地重命名为“ NewName.UserControl_Grille”,并且您将不得不将它们修复为“ MyApp.UserControl_Grille”。
选项3最为繁琐,因为您必须使用“查找和替换”来解析所有对Root名称空间的Designer文件引用,请注意不要错误地替换对Sub-MyApp名称空间的合法引用。