2011-11-16 20 views
1

偶爾的Visual Studio(2005年,2008年,2010年)將失去其心,由一個WinForm感到困惑:Visual Studio .NET中的錯誤:表中不包含的Dispose(布爾)方法

SplashForm.cs:

public partial class SplashForm : Form 
{ 
    ... 

SplashForm.Designer.cs:

partial class SplashForm 
{ 
    ... 
    protected override void Dispose(bool disposing) 
    { 
     if (disposing && (components != null)) 
     { 
     components.Dispose(); 
     } 
     base.Dispose(disposing); 
    } 
    ... 

它會抱怨:

  • protected override void Dispose(bool disposing)
    '的Dispose(布爾)' 沒有合適的方法來覆蓋
  • base.Dispose(disposing);
    '對象' 不包含定義爲「Dispose`

它抱怨代碼it生成。

自從我處理Visual Studio以來,它已經太長(3年)了,所以我已經忘記了讓Visual Studio的頭部脫離它自己的程序集的竅門。

讓它重新開始的訣竅是什麼?

+2

這是部分類發生的情況,您只需重命名一個部分。現在,設計器部分不再具有可以被覆蓋的Dispose方法的基類。重命名另一部分。下次使用Refactor。 –

回答

3

我今天有這個問題,發現這個問題。我設法解決它,而帖子是老(2歲了),我認爲這是一件好事與我找到了解決方案來回答它:

  • 我的情況:我錯了創建的窗體目錄
  • 結果:命名空間與其他窗體的命名空間不同。
  • 原因:在我的具體情況下,這是因爲我更改了<Form>.Designer.cs命名空間,因此它與表單名稱空間的其餘部分相匹配。 但是我沒有更改<Form>.cs命名空間,這是我的錯誤。

所以,如果你有這個錯誤,請確保你的名字空間<Form>.Designer.cs<Form>.cs匹配。

+0

在我的情況下幾乎相同,我將整個項目移動到另一個名稱空間,並忘記更改

.Designer.cs的名稱空間。非常感謝提示。 – Wiseman

1

那麼我修好了。

我排除:

  • SplashForm.cs
  • SplashForm.Designer.cs
  • SplashForm.resx

從項目,並將文件移動到另一個文件夾。

然後我創建了一個新的形式名爲SplashForm,並複製的內容:從備份副本

  • SplashForm.cs
  • SplashForm.Designer.cs
  • SplashForm.resx