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
。 當使用者按一下[關閉] 按鈕時,您可以在表單事件的事件處理常式 FormClosing 中設定 DialogResult 屬性,以覆寫指派給 DialogResult 屬性的值。
如果表單是多文檔介面 (MDI) 父表單, FormClosing 則會在引發 MDI 父表單的事件之前引發所有 MDI 子表單 FormClosing 的事件。 同樣地, FormClosed 所有 MDI 子表單的事件都會在引發 MDI 父表單的事件之前 FormClosed 引發。
FormClosing取消 MDI 子表單的事件不會防止 FormClosing 引發 MDI 父表單的事件。 不過,取消事件會設定 true
Cancel 為類別的 FormClosingEventArgs 屬性,該類別會當做參數傳遞至父表單。 若要強制關閉所有 MDI 父表單和子表單,請在 MDI 父表單中將 Cancel 屬性設定為 false
。
如需處理事件的詳細資訊,請參閱 處理和引發事件。