2011-05-18 42 views
0

我有两种窗体:Form1和Form2。 Form1是一个主窗体。我在Form1上创建一个按钮来显示Form2。 如果我将Form2显示为非模态形式(使用方法Show()),则在关闭它之后立即调用Dispose方法。 但是,如果我将Form2显示为模式窗体(使用方法ShowDialog()),则在关闭它的Dispose方法后不会调用它。它仅在关闭Form1(主窗体)并退出应用程序后调用。方法关闭它时不会调用模态窗体

//code Dispose method of Form2 
protected override void Dispose(bool disposing) 
     { 
      if (disposing && (components != null)) 
      { 
       components.Dispose(); 
      } 
      base.Dispose(disposing); 
     } 

注意:我使用Debug来捕获Dispose方法。

如何在关闭模态窗体时立即调用Dispose()。

请解释一下。谢谢。

回答

1

您必须在.ShowDialog()之后的Form1中的代码中手动拨打.Dispose()