.net 未定义类型[CONTROL]
我有一个小问题,我不能解决,不是很重要,但很尴尬 我有一个名为“MyApp”的windowsForm应用程序,它使用一个名为“UserControl\u Grill”的控件。有一天,我在解决方案中创建了一个文件夹来安排我的表单和控件。从今天起,当我想在窗体中添加控件(甚至是本机.NET控件)时,我在控制台中遇到了以下错误: 未定义类型“MyApp.UserControl\u” 为了修复它,我将在InitializeComponent方法中的“MyApp.Designer”中查找并替换“MyApp.UserControl\u grill”到“UserControl\u grill” 但不幸的是,每次我在窗体中添加一个新控件时,我都必须再次执行此操作 有人有办法一劳永逸地解决它吗?.net 未定义类型[CONTROL],.net,vb.net,winforms,.net,Vb.net,Winforms,我有一个小问题,我不能解决,不是很重要,但很尴尬 我有一个名为“MyApp”的windowsForm应用程序,它使用一个名为“UserControl\u Grill”的控件。有一天,我在解决方案中创建了一个文件夹来安排我的表单和控件。从今天起,当我想在窗体中添加控件(甚至是本机.NET控件)时,我在控制台中遇到了以下错误: 未定义类型“MyApp.UserControl\u” 为了修复它,我将在InitializeComponent方法中的“MyApp.Designer”中查找并替换“MyApp
谢谢我在一个项目中实现了这一点,在这个项目中,我定义了一个与我的项目同名的子命名空间(根命名空间)。当您的项目中的某个地方有这样的代码时,就会发生这种情况:
Namespace[项目名称/根命名空间]
[...]
结束命名空间
这样做的结果是,您的项目同时包含“MyApp”命名空间和“MyApp.MyApp”命名空间(如果查看项目的对象浏览器,您可以自己看到)。这种情况会导致设计器文件中出现解析冲突,从而导致它在自定义控件的错误命名空间下查找
解决此问题的几种可能方法:
选项3是最乏味的,因为您必须使用Find和Replace解析对根命名空间的所有设计器文件引用,小心不要错误地替换对子MyApp命名空间的合法引用。解决方案的根命名空间(属性->应用程序)是什么?如何将UserControl添加到表单中?根命名空间是“myApp”,要添加我的控件,我只需将其拖放到我的解决方案浏览器中。您是否可以尝试以下两种方法?1.删除根命名空间并检查是否仍然存在问题。2.仍然使用根命名空间并将“namespace MyApp”和“End namespace”添加到您的usercontrol中,并检查是否仍然存在问题?使用第一个选项,问题仍然存在。有了你的第二个,问题消失了,但我失去了我所有的控制权。。。是否没有其他选项可以返回到项目的初始状态?即使我删除了我的新文件夹,我也没有做过任何VB.NET的东西。但我认为问题在于您的usercontrol没有名称空间,当您拖放它时,它将与名称空间一起添加。因此,我认为您有以下两个选项,为每个自定义控件添加一个名称空间,即使在将来,只需拖放它并立即进行一次大修。或者通过代码创建usercontrol,不要使用拖放。