我有一个问题(显然问题是:)
我有一个项目 - MyProject ...因此项目的其余部分使用任何类的默认值作为命名空间“MyProject”......没问题。
在我的项目中,我创建了一个自定义用户控件,其上有许多其他控件(标签,文本框等)。因此,该类也在“MyProject”的默认命名空间内。所有编译都没有问题。为了确认范围可见性,在这个用户控件上,我确保DESIGNER代码和Code-Behind(我的代码)在同一个“MyProject”命名空间(它们是)中是两个,并且它们分别是PUBLIC PARTIAL CLASS MyUserControl
现在问题。我创建了一个简单的表单(默认情况下也在名称空间“MyProject”中)。从工具箱中,“MyUserControl”存在,因此我将其拖到MyNewForm上。拖放很好。
保存全部,编译,失败...... Designer正在添加一个额外的“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
...
}
感谢您的帮助...
答案 0 :(得分:16)
设计师正在做的事情是好的。
- >您的项目中有一个名为MyProject.MyProject
的命名空间。
(尝试在“课堂视图”中找到它)
答案 1 :(得分:12)
<强> PS。任何有相同问题但未找到任何解决方案的人......
假设您已创建新的WindowsFormApplication;
- 错误:“projectName.FormName”类型中不存在类型名称“userControlName”
我曾在网上研究任何解决方案,但无法提出任何答案......
但是,如果你更改了与项目名称不同的表单名称,它将被解析。
如果您坚持表单名称和项目名称必须相同,具体取决于您的项目需求,则可以创建自定义DLL并在其中使用usercontrol。
然后使用“选择项目...”
将其用作控件,将DLL文件添加到“ToolBox”最后它将准备好使用。
<强> PS2。在几个小时内遇到同样的问题,这就是我找到的解决方案。
答案 2 :(得分:2)
命名空间名称和类名称需要不同。通过添加WCF生成的代码自动引用Namespace,但如果Class名称与Namespace名称相同,则生成的代码将查看Class,并且不会编译任何内容。
答案 3 :(得分:1)
用户控件名称和表单相同。使用不同的名称将解决问题。
答案 4 :(得分:0)
由于这是我遇到此错误时的最佳搜索结果,因此只想发布我的原因和解决方案。
问题是我没有将第二个'帮助'类添加为两个项目中的链接。
所以另一个项目有一个更新的'普通'类,但不知道它现在使用的'帮助'类。
自我注意:更多关注错误列表的项目列:)
答案 5 :(得分:0)
刚遇到这个我有一个明确
的母版页<%@ Import Namespace="MyNamespace" %>
<。>在.master文件中
答案 6 :(得分:0)
当您使用不同的页面但名称相同时,也会发生这种情况。在我的例子中,我创建了“Grants.xsd”数据集和“Grants.aspx”页面。不知怎的,他们发生冲突导致了这个错误。
您可以通过将鼠标悬停在culprit关键字(类名称)上来轻松解决此问题,并且在Visual Studio 2013中,它会准确地告诉您冲突的位置。