|   | 
          
 
            
|  
              
 .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:メッセージ・ボックスを表示するには?」を参照してほしい。
          
 
            
カテゴリ:Windowsフォーム 処理対象:ダイアログ・ボックス 
              使用ライブラリ:Formクラス(System.Windows.Forms名前空間) 
              使用ライブラリ:CancelEventArgsクラス(System.ComponentModel名前空間) 
              関連TIPS:メッセージ・ボックスを表示するには?
 | 
        
 
        
 
|  
 | 
 
generated by  
 | 
 
 
 | 
 
 
	
		Insider.NET 記事ランキング
		
		
			本日
			月間