Form.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 

イベントの種類

FormClosingEventHandler

このメンバーの使用例を次に示します。 この例では、イベント ハンドラーは イベントの発生を報告 FormClosing します。 このレポートは、イベントが発生した時点を学習するのに役立ち、デバッグに役立ちます。 複数のイベントまたは頻繁に発生するイベントについて報告するには、 を複数行 に置き換えるか、メッセージを に追加 MessageBox.Show Console.WriteLine する方法を検討してください TextBox

コード例を実行するには、 という名前の型のインスタンスを含むプロジェクトに貼り付 Form けます Form1 。 次に、イベント ハンドラーが イベントに関連付けられている必要 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 を設定します。

注意

モードレス ウィンドウとして表示される で メソッドが呼び出されると、フォームのリソースが既に解放されているので、 メソッドを呼び出してフォームを表示 Close Form Show することはできません。 フォームを非表示にしてから表示するには、 メソッドを使用 Hide します。

フォームがマルチドキュメント インターフェイス (MDI) 親フォームの場合、MDI 親フォームのイベントが発生する前に、すべての MDI 子フォームのイベント FormClosing FormClosing が発生します。 同様に、すべての MDI 子フォームのイベントは、MDI 親フォームの イベントが発生する FormClosed FormClosed 前に発生します。 MDI 子フォームのイベントを取り消しても、MDI 親フォームのイベント FormClosing FormClosing が発生しません。 ただし、 イベントをキャンセルすると、親フォームにパラメーターとして渡される クラスの true Cancel FormClosingEventArgs プロパティに設定されます。 すべての MDI 親フォームと子フォームを強制的に閉じるには、MDI 親フォームで プロパティ Cancel false を に設定します。

イベントの処理の詳細については、「処理とイベントの発生」を参照してください。

適用対象

こちらもご覧ください