.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
システムトレイ(タスクトレイ)にアイコンを表示するには?
システムトレイ(タスクトレイ)にアイコンを表示するには?
コンソール・アプリケーションで終了コードを返すには?
コンソール・アプリケーションを途中で終了するには?
ほかのアプリを実行して終了コードを得るには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH