. net错误:窗体不包含Dispose(bool)方法



有时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"的定义

它在抱怨它生成的代码

我已经太长时间(3年)没有接触过Visual Studio了,所以我已经忘记了把Visual Studio的头从它自己的汇编中拿出来的技巧。

有什么诀窍可以让它再次启动?

我今天遇到了这个问题,发现了这个问题。我设法修复了它,虽然帖子是旧的(现在2岁了),我认为用我找到的解决方案来回答它总是好的:

  • 我的场景:我在错误的目录
  • 创建了一个表单
  • 结果:命名空间与其他形式的命名空间不同。
  • 原因:在我的具体情况下,这是因为我改变了<Form>.Designer.cs命名空间,使其与表单命名空间的其余部分相匹配。但是我没有改变<Form>.cs命名空间,这是我的错误。

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

我修好了。

我排除在外:

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

,并将文件移动到另一个文件夹。

然后我创建了一个新的表单,名为SplashForm,并复制了: 的内容。
  • SplashForm.cs
  • SplashForm.Designer.cs
  • SplashForm.resx

最新更新