本文件已封存並已停止維護。

Form.Closing 事件

發生於表單正在關閉時。

命名空間: System.Windows.Forms
組件: System.Windows.Forms (在 system.windows.forms.dll 中)

public event CancelEventHandler Closing
/** @event */
public void add_Closing (CancelEventHandler value)

/** @event */
public void remove_Closing (CancelEventHandler value)

JScript 可以支援使用事件,但不允許宣告新的事件。

Caution note警告

Closing 事件在 .NET Framework 2.0 中已過時,請改用 FormClosing 事件。

Closing 事件發生在表單正要關閉時。當表單關閉時,將釋放物件內建立的所有資源,並處置表單。如果您取消這個事件,表單將保持開啟。若要取消表單的關閉,設定傳遞至您事件處理方法之 CancelEventArgsCancel 屬性為 true

當表單顯示為強制回應對話方塊時,按一下 [關閉] 按鈕 (表單右上角帶有 X 的按鈕) 會將表單隱藏起來,並將 DialogResult 屬性設定為 DialogResult.Cancel。當使用者在表單 Closing 事件的事件處理常式中設定 DialogResult 屬性而按一下 [關閉] 按鈕時,可以覆寫指派給 DialogResult 屬性的值。

Note注意事項

當呼叫顯示為非強制回應視窗的 FormClose 方法,您不能呼叫 Show 方法使表單成為可見的,因為表單的資源已經被釋放。若要隱藏表單並接著使它可見,請使用 Control.Hide 方法。

Caution note警告

Form.ClosedForm.Closing 事件不是在呼叫 Application.Exit 方法來結束您的應用程式時引發。如果您在這些必須執行的任一事件中有驗證程式碼,您應該在呼叫 Exit 方法前個別地為每個開啟的表單呼叫 Form.Close 方法。

如果表單是屬於 MDI 父表單,所有 MDI 子表單的 Closing 事件會在引發 MDI 父表單的 Closing 事件前引發。此外,所有 MDI 子表單的 Closed 事件會在引發 MDI 父表單的 Closed 事件前引發。取消 MDI 子表單的 Closing 事件並無法避免引發 MDI 父表單的 Closing 事件。然而,取消事件會將 CancelEventArgsCancel 屬性設定為 true,這個屬性是以參數形式傳遞給父表單。若要強制關閉所有的 MDI 父和子表單,請將 MDI 父表單中的 Cancel 屬性設為 true

如需處理事件的詳細資訊,請參閱 使用事件

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
   // Determine if text has changed in the textbox by comparing to original text.
   if (textBox1.Text != strMyOriginalText)
   {
      // Display a MsgBox asking the user to save changes or abort.
      if(MessageBox.Show("Do you want to save changes to your text?", "My Application",
         MessageBoxButtons.YesNo) ==  DialogResult.Yes)
      {
         // Cancel the Closing event from closing the form.
         e.Cancel = true;
         // Call method to save file...
      }
   }
}

private void Form1Closing(Object sender,
    System.ComponentModel.CancelEventArgs e)
{
    // Determine if text has changed in the textbox by comparing to 
    // original text.
    if (textBox1.get_Text() != strMyOriginalText) {
        // Display a MsgBox asking the user to save changes or abort.
        if (MessageBox.Show("Do you want to save changes to your text?",
            "My Application", MessageBoxButtons.YesNo).Equals(
            get_DialogResult().Yes)) {
            // Cancel the Closing event from closing the form.
            e.set_Cancel(true);
            // Call method to save file...
        }
    }
} //Form1Closing 

Windows 98、 Windows 2000 SP4、 Windows CE、 Windows Millennium Edition、 Windows Mobile for Pocket PC、 Windows Mobile for Smartphone、 Windows Server 2003、 Windows XP Media Center Edition、 Windows XP Professional x64 Edition、 Windows XP SP2、 Windows XP Starter Edition

.NET Framework 並不支援各種平台的所有版本。如需支援平台版本的相關資訊,請參閱系統需求一節的內容。

.NET Framework

支援版本:2.0、1.1、1.0

.NET Compact Framework

支援版本:2.0、1.0
顯示: