Visual Studio 2010 不断改变我的 winforms 控件

2024-03-13

我在 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(使用前将#替换为@)

Visual Studio 2010 不断改变我的 winforms 控件 的相关文章

随机推荐