我在 VS 2010 中的用户控件遇到了奇怪的情况。表单设计者不断更改我的条目,然后告诉我它不存在!它第一次编译并运行,然后如果我更改一些不相关的内容,它会在 Designer.cs 文件中给出错误(无法解析符号 SomeEntry).
private SomeEntry someEntry;
// ...
this.someEntry = new **MyNameSpace**.SomeEntry();
如果我删除我的名字空间。
this.someEntry = new SomeEntry();
它有效,直到我再次做出改变。如果当鼠标悬停在更改的设计器文件上时查看该类,SomeEntry 会显示SomeEntry.SomeEntry()
代替MyNameSpace.SomeEntry()
基本上,定义是这样的:
namespace MyNameSpace
{
public partial class SomeEntry : FormValidatingUserControl
{
public SomeEntry()
{
InitializeComponent();
}
}
}
那么,我该怎么办?
事实证明,我应该完全按照显示的样子发布我的代码,因为我确信有人会更快地为我解决这个问题。
问题是我试图简化帖子,并更改了 MyNameSpace 和 SomeEntry 的名称以保持通用。
该项目是某物命名空间是某物(到目前为止,正常)并且有一个生成的类某物从实体框架来看。
为了重现该问题,我创建了一个名为的新项目WinForm测试X。所以,解决方案是WinForm测试X和项目WinForm测试X。我添加了一个名为 WinFormTestX 的类,但没有对它执行任何操作。
namespace WinFormTestX
{
public class WinFormTestX
{
public int ID { get; set; }
}
}
现在,我创建一个 UserControl (UserControl1) 并在其上放置一个简单的按钮。编译它,工具箱将按预期添加此控件。现在,我将其放在 Form1 上并编译它并收到错误:
错误 1 类型名称“UserControl1”
类型中不存在
'WinFormTestX.WinFormTestX' D:\Data\Projects\Temp\WinFormTestX\Form1.Designer.cs 31 51 WinFormTestX
一旦我右键单击类 WinFormTestX 并从项目中排除(或删除它),一切正常。
因此,即使项目中的类与命名空间同名,即使未使用该类,也会导致问题。显然,现在我知道了原因,有一个简单的方法可以解决这个问题。但是,这是一个应该提交给微软的“bug”吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)