是一个表单当用户从窗口栏/等关闭它时处理

时间:2010-01-11 12:45:40

标签: c# .net winforms

当用户使用右上角X或Alt + F4关闭System.Windows.Forms.Form时,是否会自动释放它?表单显示为form.Show(this),而不是form.ShowDialog(...);

1 个答案:

答案 0 :(得分:14)

使用Show,是的(在WmClose结束时)。使用ShowDialog,不是。有趣;-p

对于ShowDialog,see MSDN

  

由于显示为对话框的表单未关闭,因此当您的应用程序不再需要该表单时,必须调用表单的Dispose方法。

要证明这一点,但是:

Form main = new Form();
Form test = new Form();
test.Text = "Close me";
test.Disposed += delegate {
    main.Text = "Second form was disposed";
};
main.Shown += delegate {
    test.Show();
};
Application.Run(main);