.NET TIPS

Windowsアプリケーション終了時に確認ダイアログを表示するには?

デジタルアドバンテージ 遠藤 孝信
2005/05/13

 Windowsアプリケーションが誤って終了されるのを防ぐために、ユーザーがフォームを閉じようとしたときに次画面のような確認ダイアログ(実際にはメッセージ・ボックス)を表示させたい場合がある。

アプリケーション終了時に表示される確認ダイアログ
ここで[いいえ]ボタンをクリックすれば、アプリケーションの終了をキャンセルでき、ユーザーは作業を継続することができる。

 このダイアログでは、[いいえ]ボタンをクリックすることによりアプリケーションの終了をキャンセルでき、ユーザーはアプリケーションでの作業を継続することができる。

フォームのClosingイベント

 ユーザーがフォームを閉じようとしたときには、フォームではClosingイベントが発生するため、終了確認のダイアログはこのタイミングで表示させればよい。

 上記の画面のようなダイアログを表示するClosingイベントのイベント・ハンドラは次のようになる。

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
  if (MessageBox.Show(
    "終了してもいいですか?", "確認",
    MessageBoxButtons.YesNo, MessageBoxIcon.Question
      ) == DialogResult.No) {
    e.Cancel = true;
  }
}
終了確認ダイアログを表示するClosingイベントのイベント・ハンドラの記述例(C#)
 
Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
  If MessageBox.Show( _
    "終了してもいいですか?", "確認", _
    MessageBoxButtons.YesNo, MessageBoxIcon.Question _
      ) = DialogResult.No Then
    e.Cancel = True
  End If
End Sub
終了確認ダイアログを表示するClosingイベントのイベント・ハンドラの記述例(VB.NET)

 ここでポイントとなるのは、イベント・ハンドラとなるメソッドのパラメータとして渡されるCancelEventArgsクラス(System.ComponentModel名前空間)のオブジェクトのCancelプロパティである。イベント・ハンドラでは、このプロパティをtrueに設定すればフォームの終了処理をキャンセルすることができる。

 なお、ここでは確認ダイアログとして2つのボタンと疑問符アイコンを持つメッセージ・ボックスを利用しているが、メッセージ・ボックスについては「TIPS:メッセージ・ボックスを表示するには?」を参照してほしい。End of Article

カテゴリ:Windowsフォーム 処理対象:ダイアログ・ボックス
使用ライブラリ:Formクラス(System.Windows.Forms名前空間)
使用ライブラリ:CancelEventArgsクラス(System.ComponentModel名前空間)
関連TIPS:メッセージ・ボックスを表示するには?
 
この記事と関連性の高い別の.NET TIPS
システムトレイ(タスクトレイ)にアイコンを表示するには?
メッセージ・ボックスのデフォルト・ボタンを変更するには?
システムトレイ(タスクトレイ)にアイコンを表示するには?
[ASP.NET]DataGridコントロールの削除ボタンで確認メッセージを表示するには?
モーダル・ダイアログやモードレス・ダイアログを表示するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間