我一直在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我安裝的都是最新的。
- 我已經做了一個乾淨的解決方案和重建。
有什麼明顯的,我可能錯過了?
'然後檢查它是否使用相同的名稱空間。這是一件很奇怪的事情。你改變了名字空間的名字嗎? Project + Properties,Application選項卡中的Default命名空間設置是否匹配?簡單的解釋錯誤。 – 2012-01-31 12:47:05
@HansPassant我在某種程度上改變了命名空間(對於這個表單或者其他項目)的檢查機會。這只是我認爲我應該檢查的一件事情,一旦發生某些事情已經損壞或改變了它。事實證明名稱空間無論如何都是正確的 – 2012-01-31 13:26:53
您是否真的需要「部分」定義?如果你刪除它會發生什麼?調用是否在同一個程序集中實例化?還是需要引用TestToolForm所在的程序集? – woohoo 2012-01-31 16:26:28