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

Ano*_*nym 10 .net c# winforms

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

Mar*_*ell 14

Show,是的,是(在结束时WmClose).有了ShowDialog,不,没有.有趣;-p

对于ShowDialog,请参阅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);
Run Code Online (Sandbox Code Playgroud)