Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 模态形式的方法二阶性是';我关上它的时候没有打电话_C#_.net - Fatal编程技术网

C# 模态形式的方法二阶性是';我关上它的时候没有打电话

C# 模态形式的方法二阶性是';我关上它的时候没有打电话,c#,.net,C#,.net,我有两张表格:表格一和表格二。 Form1是一种主要形式。我在Form1上创建一个按钮来显示Form2。 如果我像显示无模式表单一样显示Form2(使用方法show()),则在关闭它之后会立即调用它的Dispose方法。 但是,如果我像模态表单一样显示Form2(使用方法ShowDialog()),则在关闭它之后不会调用它的Dispose方法。它仅在关闭Form1(主窗体)并退出应用程序后调用 //code Dispose method of Form2 protected override v

我有两张表格:表格一和表格二。 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);
        }
注意:我在Dispose方法中使用Debug陷阱

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


请解释一下。谢谢。

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