从命名空间和构造函数名称初始化表单设计器的InitializeComponent时出错

时间:2012-09-11 22:00:01

标签: c# initialization

我已经将一些旧的(不是我自己的)代码引入了我想要修改的新解决方案。我是C#的新手,所以如果我的术语不正确或遗漏了任何明显的东西,我会道歉。

我有一个主要表单MainForm.cs和自定义组件CustomComponent.cs,它继承了PropertyGrid。 CustomComponent位于MainForm中。

我收到错误:

The type name 'MainNameSpace' does not exist in the type 'MainNameSpace.MainNameSpace'

在MainForm.Designer.cs中,我有生成的代码:

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
    {
        // stuff
        this.customComponent1 = new MainNameSpace.MainNameSpace();
        // more stuff
    }

如果我手动进入并将其更改为“new MainNameSpace();”它工作得很好。我不知道为什么名称空间的名称会被添加两次。我尝试检查.resx文件是否有任何可疑但没有看到任何内容,而不是我知道要查找什么。有一个很好的起点可以看吗?我已经进入了MainForm,CustomComponent,以及我能想到的其他一切寻找罪魁祸首,但没有找到任何看起来像罪魁祸首的东西。关于我应该在哪里寻找/寻找什么的任何想法?我觉得问题出在CustomComponent.cs中,但我不知道。

CustomComponent.cs:

namespace MainNameSpace
{
    public partial class MainNameSpace : PropertyGrid
    {
        public MainNameSpace()
        {
            InitializeComponent();
        }

        // other stuff
    }
}

谢谢!

1 个答案:

答案 0 :(得分:1)

之前我遇到过这个问题,我很确定这些问题是:

namespace MainNameSpace
{
    public partial class MainNameSpace : PropertyGrid
    {

命名空间和类不能具有相同的名称,因为它不知道您正在调用哪一个。尝试更改命名空间或类名,它应该可以工作。

希望这有帮助!