Application.ApplicationExitを使ってアプリケーションを終了する方法とApplication.ExitメソッドとEnvironment.Exitメソッドを利用してアプリケーションを終了する方法を解説していきます。
Application.ApplicationExitイベントを使ってアプリケーション終了を知る方法
Application.ApplicationExitイベントを使うことでアプリケーション終了を知ることができます。
サンプルコード
using System;
using System.Windows.Forms;
namespace CloseAppEvent
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
//ApplicationExitイベントハンドラを追加
Application.ApplicationExit += new EventHandler(Application_ApplicationExit);
}
/// <summary>
/// ApplicationExitイベントハンドラ
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Application_ApplicationExit(object sender, EventArgs e)
{
MessageBox.Show("アプリケーションが終了されます。");
//ApplicationExitイベントハンドラを削除
Application.ApplicationExit -= new EventHandler(Application_ApplicationExit);
}
}
}
実行結果
Application_ApplicationExit(object sender, EventArgs e)
のイベントハンドラが呼び出されてメッセージボックスが開きました。
アプリケーションを終了させる方法
フォームアプリを作成している場合などは途中でアプリケーションを終了させたい場合がありますよね?
そういった場合はApplication.ExitメソッドかEnvironment.Exitメソッドを使います。
Application.Exitメソッドを使う場合
厳密に言うとApplication.Exitメソッドはアプリケーションの終了処理ではありません。なぜなら、Application.Runメソッドで開始されたメッセージループを終了させるためのメソッドだからです。
そのため、フォームアプリのエントリポイントにメインフォームを指定している場合は、Application.Run メソッドの終了(Exit)がアプリケーションの終了と同じ処理となるため、結果的にアプリケーションを終了させることができます。
//Application.RunメソッドをExitします
Application.Exit();
ちなみに、Application.Exit メソッドは呼び出した時点で、関連するフォームを全て閉じますが、その際、FormClosing イベント、および FormClosed イベントが発生します。
Environment.Exitメソッドでアプリケーションを強制終了させる
メインフォームを開く前にアプリケーションを終了させたい場合には、Environment.Exitメソッドを使います。これで実行中のプロセスをすべて終了させることができます。
//アプリケーションを強制終了します
Environment.Exit(0);
コメント