Form.FormClosing 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
关闭窗体前发生。
public:
event System::Windows::Forms::FormClosingEventHandler ^ FormClosing;
public event System.Windows.Forms.FormClosingEventHandler FormClosing;
public event System.Windows.Forms.FormClosingEventHandler? FormClosing;
member this.FormClosing : System.Windows.Forms.FormClosingEventHandler
Public Custom Event FormClosing As FormClosingEventHandler
事件类型
示例
以下示例演示了此成员的用法。 在此示例中,事件处理程序报告事件的发生情况 FormClosing 。 此报告可帮助你了解事件发生的时间,并可以帮助你进行调试。 若要报告多个事件或频繁发生的事件,请考虑将 MessageBox.ShowConsole.WriteLine 消息替换为 或将消息追加到多行 TextBox。
若要运行示例代码,请将其粘贴到包含名为 Form1
的类型的Form实例的项目中。 然后,确保事件处理程序与 FormClosing 事件相关联。
private void Form1_FormClosing(Object sender, FormClosingEventArgs e) {
System.Text.StringBuilder messageBoxCS = new System.Text.StringBuilder();
messageBoxCS.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason );
messageBoxCS.AppendLine();
messageBoxCS.AppendFormat("{0} = {1}", "Cancel", e.Cancel );
messageBoxCS.AppendLine();
MessageBox.Show(messageBoxCS.ToString(), "FormClosing Event" );
}
Private Sub Form1_FormClosing(sender as Object, e as FormClosingEventArgs) _
Handles Form1.FormClosing
Dim messageBoxVB as New System.Text.StringBuilder()
messageBoxVB.AppendFormat("{0} = {1}", "CloseReason", e.CloseReason)
messageBoxVB.AppendLine()
messageBoxVB.AppendFormat("{0} = {1}", "Cancel", e.Cancel)
messageBoxVB.AppendLine()
MessageBox.Show(messageBoxVB.ToString(),"FormClosing Event")
End Sub
注解
该 FormClosing 事件在窗体关闭时发生。 关闭窗体时,会释放该窗体,释放与该窗体关联的所有资源。 如果取消此事件,窗体将保持打开状态。 若要取消窗体的关闭,请将 Cancel 传递给事件处理程序的 FormClosingEventArgs 的 属性设置为 true
。
当窗体显示为模式对话框时,单击“ 关闭 ”按钮 (窗体右上角带有 X 的按钮) 会导致窗体被隐藏,并将 DialogResult 属性设置为 DialogResult.Cancel
。 在用户单击“关闭”按钮时,可以通过在窗体事件的DialogResult事件处理程序中设置 DialogResult 属性来替代分配给 属性FormClosing的值。
如果窗体是多文档接口 (MDI) 父窗体,则会 FormClosing 在引发 MDI 父窗体的事件之前引发所有 MDI 子窗体 FormClosing 的事件。 同样, FormClosed 所有 MDI 子窗体的事件在引发 MDI 父窗体的事件之前 FormClosed 引发。 取消 FormClosing MDI 子窗体的事件不会阻止 FormClosing 引发 MDI 父窗体的事件。 但是,取消事件将设置为true
Cancel作为参数传递给父窗体的 FormClosingEventArgs 类的 属性。 若要强制关闭所有 MDI 父窗体和子窗体,请在 Cancel MDI 父窗体中将 false
属性设置为 。
有关处理事件的详细信息,请参阅 处理和引发事件。