Visual Studio .NET错误:窗体不包含Dispose(bool)方法

时间:2011-11-16 16:26:58

标签: winforms visual-studio visual-studio-2010 dispose

有时Visual Studio(2005年,2008年,2010年)会失去理智,并被WinForm搞糊涂:

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(bool)'没有合适的方法来覆盖
  • base.Dispose(disposing);
    'object'不包含'Dispose`
  • 的定义

抱怨生成的代码。

自从我处理Visual Studio以来已经太长了(3年),所以我忘记了将Visual Studio的头部从自己的程序集中移除的技巧。

让它再次成功的诀窍是什么?

2 个答案:

答案 0 :(得分:3)

今天我遇到了这个问题并发现了这个问题。我设法解决了这个问题,虽然帖子很旧(现在已经2岁了)但我觉得用我找到的解决方案回答它总是好的:

  • 我的方案:我在错误的目录中创建了一个表单
  • 结果:命名空间与其他表单的命名空间不同。
  • 原因:在我的具体情况下,这是因为我更改了<Form>.Designer.cs命名空间,以便它与其余的表单命名空间匹配。 但是我没有更改<Form>.cs命名空间,这是我的错误。

因此,如果您遇到此错误,请确保<Form>.Designer.cs<Form>.cs中的两个命名空间都匹配。

答案 1 :(得分:1)

我修好了。

我排除了:

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

从项目中,将文件移动到另一个文件夹。

然后我创建了一个名为SplashForm new 表单,并复制了以下内容:

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

来自备份副本。