アプリケーションの開始時または終了時に行う処理を記述するエントリポイントに記述する方法アプリケーションの開始時と終了時は、つまり、エントリポイントのMainメソッドに入ってすぐとMainメソッドから抜ける前ということになります。通常は、エントリポイントのMainメソッド内のApplication.Runメソッドを呼び出す前にアプリケーション開始時の処理を、Application.Runメソッドより後ろにアプリケーション終了時の処理を記述すればよいでしょう。 なおエントリポイントを記述する方法については、こちらをご覧ください。 Visual Studio 2005以降のVB.NETで、My.Applicationを使用する方法Visual Studio 2005以降のVB.NETでは、My.Application.Startupイベントでアプリケーションが開始されたことを知ることができます。また、My.Application.Shutdownイベントでアプリケーションが終了されることを知ることができます。 ただし、これらのイベントを使うためには、アプリケーションフレームワークを有効にしなければなりません。アプリケーションフレームワークを有効にするには、メニューの「プロジェクト」-「プロパティ」でプロジェクトのプロパティを表示し、「アプリケーション」タブにある「アプリケーションフレームワークを有効にする」にチェックを入れます。 これらのイベントハンドラは、"ApplicationEvents.vb"に記述すると便利です。"ApplicationEvents.vb"は、プロジェクトプロパティの「アプリケーション」タブにある「アプリケーションイベントの表示」ボタンをクリックすると表示できます。 "ApplicationEvents.vb"にMy.Application.StartupとShutdownイベントハンドラを記述する例を以下に示します。ここでは、アプリケーションの開始時と終了時にメッセージボックスを表示しています。 Namespace My Partial Friend Class MyApplication Private Sub MyApplication_Startup(ByVal sender As Object, _ ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) _ Handles Me.Startup 'メッセージボックスでNoを選択すると、アプリケーションを終了 'この場合、Shutdownイベントは発生しない If MsgBox("アプリケーションを開始しますか?", MsgBoxStyle.YesNo) = _ MsgBoxResult.No Then e.Cancel = True End If '指定されたコマンドライン引数を列挙 For Each cmd As String In e.CommandLine Console.WriteLine(cmd) Next End Sub Private Sub MyApplication_Shutdown(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Shutdown MsgBox("アプリケーションが終了します。") End Sub End Class End Namespace Application.ApplicationExitイベントを使用する方法Application.ApplicationExitイベントを使用して、アプリケーションが終了することを知ることができます。 以下にその使用例を示します。ここではフォームのLoadイベントハンドラでApplicationExitイベントハンドラを追加していますが、実際には、エントリポイントの適当な位置(Application.Runメソッドを呼び出す前)に記述したほうがよいでしょう。エントリポイントについて詳しくは、こちらをご覧ください。 'フォームのLoadイベントハンドラ Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _ Handles MyBase.Load 'ApplicationExitイベントハンドラを追加 AddHandler Application.ApplicationExit, AddressOf Application_ApplicationExit End Sub 'ApplicationExitイベントハンドラ Private Sub Application_ApplicationExit(ByVal sender As Object, ByVal e As EventArgs) MessageBox.Show("アプリケーションが終了されます。") 'ApplicationExitイベントハンドラを削除 RemoveHandler Application.ApplicationExit, AddressOf Application_ApplicationExit End Sub //フォームのLoadイベントハンドラ private void Form1_Load(object sender, EventArgs e) { //ApplicationExitイベントハンドラを追加 Application.ApplicationExit += new EventHandler(Application_ApplicationExit); } //ApplicationExitイベントハンドラ private void Application_ApplicationExit(object sender, EventArgs e) { MessageBox.Show("アプリケーションが終了されます。"); //ApplicationExitイベントハンドラを削除 Application.ApplicationExit -= new EventHandler(Application_ApplicationExit); } 注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。
|
|
Copyright(C) DOBON!. All rights reserved.
|