方法关闭模式窗体时不会调用它

时间:2011-05-18 09:33:15

标签: c# .net

我有两个表单: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 个答案:

答案 0 :(得分:1)

您必须在.Dispose()之后立即在Form1中的代码中手动调用.ShowDialog()