2012-01-31 29 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上發現了這個問題,讓我再次查看命名空間。

因此,請仔細檢查您的名稱空間,嘗試從舊文件複製並粘貼名稱空間到新窗體上。希望能幫助到你。