2009-10-06 53 views
16

我有一个问题(很明显的问题:)类型名称{}的MyUserControl中不存在类型{} myNamespace.myNamespace

我有一个项目 - MyProject的......该项目的,因此其余使用默认的任何类作为命名空间“MyProject”...没问题。

在我的项目中,我创建了一个自定义用户控件,其上有很多其他控件(标签,文本框等)。因此,该类也在“MyProject”的默认名称空间内。所有编译没有问题。为了确认范围的可见性,在这个用户控件上,我确信DESIGNER代码和代码隐藏(我的代码)在同一个“MyProject”命名空间中(它们是),并且它们分别是PUBLIC PARTIAL CLASS MyUserControl 。

现在的问题。我创建了一个简单的表单(默认情况下也在名称空间“MyProject”中)。从工具箱中,“MyUserControl”存在,所以我把它拖到MyNewForm上。拖放是好的。

保存全部,编译,失败...设计器正在添加一个额外的“MyProject”引用,因此看起来用户控件实际上位于MyProject.MyProject.MyUserControl ..而不是MyProject.MyUserControl。

只要我手动删除多余的“MyProject”,保存并编译,一切都很好。但是,如果我重新编辑表单,更改某些内容,M $将其更改回原始的“MyProject.MyUserControl”引用。

之所以这么说,这里是从我的项目中的片段......

namespace MyProject 
{ 
    partial class MyNewForm 
    { 
     ... 
     private void InitializeComponent() 
     { 
     // THIS is the line that has the extra "MyProject." reference 
     // when I manually remove it, all works perfectly 
     this.MyUserControl1 = new MyProject.MyUserControl(); 
     } 
    } 


    private MyUserControl MyUserControl1; 

} 

然后,在定义的MyUserControl我...

namespace MyProject 
{ 
    public partial class MyUserControl : UserControl 
    ... 
} 

,并从MyUserControl通过Designer ...

namespace MyProject 
{ 
    public partial class MyUserControl : UserControl 
    ... 

} 

感谢您的帮助...

回答

11

设计师在做什么是好的。

- >你的项目中有一个叫做MyProject.MyProject的名称空间。

(尝试在“类视图”找到它)

+2

LOADS的感谢。 – Larry 2011-09-30 13:34:09

+15

当您在某个名称空间中使用与名称空间相同的名称类时,也会发生这种情况。 – greenskin 2013-06-20 10:34:30

0

由于这是一个顶级的搜索结果,当我有这个错误,只是想发表我的原因和解决方案。

  • 我有一个解决方案中的两个项目,共享一个“共同”类文件,作为链接添加。
  • 我添加了第二个'助手'类文件作为链接,在第一个中使用了它的代码,并得到了错误。

问题是我没有在这两个项目中添加第二个'helper'类作为链接。

因此,另一个项目有一个更新的'普通'类,但没有它现在使用的'助手'类的知识。

自我提醒:更加注重错误列表:)

11

PS的项目列。给任何有同样问题但没有找到任何解决方案的人...

假设你已经创建了一个新的WindowsFormApplication;

  1. 使用与其解决方案名称相同的名称创建一个新的WindowsFormApplication项目。
  2. 默认预先创建的表单名称称为“Form1”。并改变其名称相同的项目名称。
  3. 将新的UserControl类添加到项目中。
  4. 构建/重建项目并检查usercontrol位于Toolbox中。
  5. 将usercontrol拖放到窗体上并开始调试。
  • Error: The type name 'userControlName' does not exist in the type 'projectName.FormName'

我对网研究任何解决方案,但未能拿出任何答案...

但是,如果你改变窗体名称与项目名称的任何其他不同的,它将得到解决。

如果您坚持要求表单名称和项目名称必须相同,具体取决于您的项目需求,可以创建自定义DLL并使用其中的usercontrol。

然后作为控制使用,添加DLL文件中的“工具箱”使用“选择项目...”

最后,将是准备使用。

PS2。同样的问题挣扎几个小时,这是我找到的解决方案。

+1

我遇到了类似的问题。对我而言,它是一个具有相同名称空间的类。驱使我疯狂,但感谢这个答案,我发现它。 – 2016-06-29 16:56:14

1

用户控件和表单的名称相同。使用不同的名字将解决问题。

2

命名空间名称和类名称需要不同。通过添加WCF生成的代码会自动引用名称空间,但是如果类名称与名称空间名称相同,则生成的代码将查看该类,并且不会编译任何内容。

0

正好遇到这个地方我有一个母版,在文件名为.master

0

当您使用不同的页面也会出现这种情况,但具有相同的名称有明确的

<%@ Import Namespace="MyNamespace" %> 

。在我的情况下,我创建了“Grants.xsd”数据集和“Grants.aspx”页面。不知怎的,他们遇到了冲突导致了这个错误。

您可以通过将鼠标悬停在罪魁祸首关键字(类名)上并在Visual Studio 2013中轻松解决此问题,它会准确地告诉您冲突在哪里。

相关问题