2012-01-31 62 views
1

我一直在Visual Studio 2008中研究C#/ Winforms项目几天,并决定添加一个新表单。所以,我右键点击我的项目名称,然后选择“添加”,然后选择“Windows窗体”。无法实例化已添加表单的实例

我给了它一个有用的名称 - 就像“TestToolForm.cs” - 然后检查它是否使用与项目其余部分相同的名称空间。我点击“保存”,然后“建立”。一切都会好起来的。

然后我试图在(形式)按钮单击事件来创建它的一个实例,并得到以下错误消息:

The type or namespace name 'TestToolForm' could not be found (are you missing a using directive or an assembly reference?) 

错误被抛出下面的代码块 - 上的两个实例词 “TestToolForm”:

private void btnTestTool_Click(object sender, EventArgs e) 
{ 
    TestToolForm testForm = new TestToolForm(); 
} 

我TestToolForm.cs正好包含以下,因为我要添加之后的内在逻辑:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace myNameSpace 
{ 
    public partial class TestToolForm : Form 
    { 
     public TestToolForm() 
     { 
      InitializeComponent(); 
     } 
    } 
} 

有趣的是,我已经用这种方式添加了所有其他表单,而且他们之前都没有导致这个错误。

我在这里看了一下,Google,DaniWeb和其他地方。

  • 我检查过,我有匹配的圆括号和花括号(它不会编译之前,否则)。
  • 我已关闭Visual Studio,重新启动我的机器并启动VS备份。
  • 我检查了我正在编译.NET客户端版本4
  • 我已经确认.NET框架和Visual Studio我安装的都是最新的。
  • 我已经做了一个干净的解决方案和重建。

有什么明显的,我可能错过了?

+0

'然后检查它是否使用相同的名称空间。这是一件很奇怪的事情。你改变了名字空间的名字吗? Project + Properties,Application选项卡中的Default命名空间设置是否匹配?简单的解释错误。 – 2012-01-31 12:47:05

+1

@HansPassant我在某种程度上改变了命名空间(对于这个表单或者其他项目)的检查机会。这只是我认为我应该检查的一件事情,一旦发生某些事情已经损坏或改变了它。事实证明名称空间无论如何都是正确的 – 2012-01-31 13:26:53

+0

您是否真的需要“部分”定义?如果你删除它会发生什么?调用是否在同一个程序集中实例化?还是需要引用TestToolForm所在的程序集? – woohoo 2012-01-31 16:26:28

回答

3

我也有同样的问题,如本文所述。我也在想,我给了相同的命名空间,但是当我仔细检查我的命名空间时,发现有1个字符的差异。很高兴我在SO上发现了这个问题,让我再次查看命名空间。

因此,请仔细检查您的名称空间,尝试从旧文件复制并粘贴名称空间到新窗体上。希望能帮助到你。