Visual Basic アプリケーション モデルの概要Overview of the Visual Basic Application Model

Visual Basic Windows フォーム アプリケーションの動作を制御するための適切に定義されたモデルを提供します。 Visual Basic アプリケーション モデルです。Visual Basic provides a well-defined model for controlling the behavior of Windows Forms applications: the Visual Basic Application model. このモデルには、アプリケーションのスタートアップとシャット ダウン、だけでなくハンドルされない例外をキャッチのイベントを処理するためのイベントが含まれています。This model includes events for handling the application's startup and shutdown, as well as events for catching unhandled exceptions. 単一インスタンス アプリケーションを開発するためのサポートも提供します。It also provides support for developing single-instance applications. アプリケーション モデルとは、拡張可能なため、詳細に制御を必要がある開発者はそのオーバーライド可能なメソッドをカスタマイズできます。The application model is extensible, so developers that need more control can customize its overridable methods.

アプリケーション モデルの使用方法Uses for the Application Model

一般的なアプリケーションを起動およびシャット ダウン時にタスクを実行する必要があります。A typical application needs to perform tasks when it starts up and shuts down. たとえば、起動時、アプリケーションことができますスプラッシュ スクリーンを表示、データベース接続を作成、保存済みの状態を読み込むおよび具合します。For example, when it starts up, the application can display a splash screen, make database connections, load a saved state, and so on. アプリケーションがシャット ダウン時、データベース接続を閉じて、現在の状態を保存、具合およびできます。When the application shuts down, it can close database connections, save the current state, and so on. さらに、アプリケーション コードを実行できます特定アプリケーションがシャット ダウンが予期せずに、このような未処理の例外時にします。In addition, the application can execute specific code when the application shuts down unexpectedly, such as during an unhandled exception.

Visual Basic アプリケーション モデルでは、簡単に作成、単一インスタンスアプリケーション。The Visual Basic Application model makes it easy to create a single-instance application. 単一インスタンス アプリケーションは、コンピューターを一度に実行される通常のアプリケーションから、アプリケーションのインスタンスを 1 つだけは異なります。A single-instance application differs from a normal application in that only one instance of the application can be running at a time. 単一インスタンスのアプリケーションの別のインスタンスを起動しようとすると、結果の通知を送信元のインスタンス: で、StartupNextInstanceイベント-を別の起動しようとしました。An attempt to launch another instance of a single-instance application results in the original instance being notified—by means of the StartupNextInstance event—that another launch attempt was made. 通知には、後続のインスタンスのコマンドライン引数が含まれています。The notification includes the subsequent instance's command-line arguments. すべての初期化を行う前に、アプリケーションの後続のインスタンスが閉じられます。The subsequent instance of the application is then closed before any initialization can occur.

単一インスタンス アプリケーションが起動し、最初のインスタンスまたは後続のアプリケーションのインスタンスがあるかどうかを確認します。A single-instance application starts and checks whether it is the first instance or a subsequent instance of the application:

  • 最初のインスタンスの場合、通常どおりに起動します。If it is the first instance, it starts as usual.

  • 各後続の試行の最初のインスタンスの実行中にアプリケーションを起動は、非常に異なる動作になります。Each subsequent attempt to start the application, while the first instance runs, results in very different behavior. 後続の試行では、コマンドラインの引数の詳細については、最初のインスタンスに通知し、すぐに終了します。The subsequent attempt notifies the first instance about the command-line arguments, and then immediately exits. 最初のインスタンス ハンドル、StartupNextInstanceイベントに、後続のインスタンスのコマンドライン引数を通知し、実行が継続されます。The first instance handles the StartupNextInstance event to determine what the subsequent instance's command-line arguments were, and continues to run.

    この図は、後続のインスタンスが最初のインスタンスを通知する方法を示しています。This diagram shows how a subsequent instance signals the first instance:

    アプリケーションのイメージを 1 つのインスタンスを示す図。

処理することによって、StartupNextInstanceイベント、単一インスタンス アプリケーションの動作を制御できます。By handling the StartupNextInstance event, you can control how your single-instance application behaves. たとえば、Microsoft Outlook は、通常; 単一インスタンス アプリケーションとして実行します。Outlook が実行されていると、Outlook を起動しようとしたときにも、元のインスタンスにフォーカスを移動が、別のインスタンスは開くことができません。For example, Microsoft Outlook typically runs as a single-instance application; when Outlook is running and you attempt to start Outlook again, focus shifts to the original instance but another instance does not open.

アプリケーション モデル内のイベントEvents in the Application Model

アプリケーション モデルでは、次のイベントにあります。The following events are found in the application model:

  • アプリケーションの起動します。Application startup. アプリケーションが、Startupイベントの開始時にします。The application raises the Startup event when it starts. このイベントを処理することによって、メイン フォームが読み込まれる前に、アプリケーションを初期化するコードを追加できます。By handling this event, you can add code that initializes the application before the main form is loaded. Startup必要な場合、このイベントも、起動プロセスのフェーズでは、そのアプリケーションの実行の取り消しの提供します。The Startup event also provides for canceling execution of the application during that phase of the startup process, if desired.

    アプリケーションのスタートアップ コードが実行中に、スプラッシュ スクリーンを表示するアプリケーションを構成することができます。You can configure the application to show a splash screen while the application startup code runs. 既定では、アプリケーション モデルは、ロゴを抑制するときに画面か、/nosplashまたは-nosplashコマンドライン引数を使用します。By default, the application model suppresses the splash screen when either the /nosplash or -nosplash command-line argument is used.

  • 単一インスタンス アプリケーションします。Single-instance applications. StartupNextInstance単一インスタンスのアプリケーションの後続のインスタンスの起動時にイベントが発生します。The StartupNextInstance event is raised when a subsequent instance of a single-instance application starts. イベントは、後続のインスタンスのコマンドライン引数を渡します。The event passes the command-line arguments of the subsequent instance.

  • 未処理の例外します。Unhandled exceptions. アプリケーションには、ハンドルされない例外が発生すると、生成、UnhandledExceptionイベント。If the application encounters an unhandled exception, it raises the UnhandledException event. そのイベントのハンドラーは、例外を確認し、実行を続行するかどうかを判断できます。Your handler for that event can examine the exception and determine whether to continue execution.

    UnhandledExceptionイベントは、いくつかの状況では発生しません。The UnhandledException event is not raised in some circumstances. 詳細については、「 UnhandledException 」を参照してください。For more information, see UnhandledException.

  • ネットワーク接続の変更します。Network-connectivity changes. アプリケーションが発生しているコンピューターのネットワークの可用性が変更された場合、NetworkAvailabilityChangedイベント。If the computer's network availability changes, the application raises the NetworkAvailabilityChanged event.

    NetworkAvailabilityChangedイベントは、いくつかの状況では発生しません。The NetworkAvailabilityChanged event is not raised in some circumstances. 詳細については、「 NetworkAvailabilityChanged 」を参照してください。For more information, see NetworkAvailabilityChanged.

  • アプリケーションのシャット ダウンします。Application shut down. アプリケーションでは、Shutdownをシャット ダウンするときに通知するイベントです。The application provides the Shutdown event to signal when it is about to shut down. イベントのハンドラーを行うことができますを実行する必要が、アプリケーションを操作することを確認して — を閉じると、保存、たとえば: が完了します。In that event handler, you can make sure that the operations your application needs to perform—closing and saving, for example—are completed. アプリケーションをメイン フォームが閉じたときにシャット ダウンするか、すべてのフォームを閉じるときのみをシャット ダウンを構成することができます。You can configure your application to shut down when the main form closes, or to shut down only when all forms close.

可用性Availability

既定では、Visual Basic アプリケーション モデルは Windows フォーム プロジェクトで使用できます。By default, the Visual Basic Application model is available for Windows Forms projects. 異なるスタートアップ オブジェクトを使用するアプリケーションを構成またはカスタム アプリケーション コードを開始するかどうかSub Main、し、そのオブジェクトまたはクラスは、の実装を提供する必要があります、WindowsFormsApplicationBaseアプリケーション モデルを使用するクラス。If you configure the application to use a different startup object, or start the application code with a custom Sub Main, then that object or class may need to provide an implementation of the WindowsFormsApplicationBase class to use the application model. スタートアップ オブジェクトを変更する方法の詳細については、次を参照してください。アプリケーション ページで、プロジェクト デザイナー (Visual Basic)します。For information about changing the startup object, see Application Page, Project Designer (Visual Basic).

関連項目See also