Cenni preliminari sul modello di applicazione Visual BasicOverview of the Visual Basic Application Model

Visual Basic fornisce un modello ben definito per il controllo del comportamento delle applicazioni Windows Forms: il modello di applicazione Visual Basic.Visual Basic provides a well-defined model for controlling the behavior of Windows Forms applications: the Visual Basic Application model. Questo modello include gli eventi per la gestione dell'applicazione avvio e arresto, nonché gli eventi per intercettare eccezioni non gestite.This model includes events for handling the application's startup and shutdown, as well as events for catching unhandled exceptions. Fornisce inoltre il supporto per lo sviluppo di applicazioni a istanza singola.It also provides support for developing single-instance applications. Il modello applicativo è estensibile, in modo che gli sviluppatori che devono esercitare un controllo più possono personalizzare i relativi metodi sottoponibili a override.The application model is extensible, so developers that need more control can customize its overridable methods.

Viene utilizzato per il modello di applicazioneUses for the Application Model

Una tipica applicazione deve eseguire le attività quando viene avviato e arrestato.A typical application needs to perform tasks when it starts up and shuts down. Ad esempio, all'avvio, l'applicazione può visualizzare una schermata, stabilire connessioni al database, caricare uno stato salvato e così via.For example, when it starts up, the application can display a splash screen, make database connections, load a saved state, and so on. Quando l'applicazione viene arrestata, è possibile chiudere le connessioni al database, salvare lo stato corrente e così via.When the application shuts down, it can close database connections, save the current state, and so on. Inoltre, l'applicazione può eseguire codice specifico quando l'applicazione venga interrotto improvvisamente, ad esempio durante un'eccezione non gestita.In addition, the application can execute specific code when the application shuts down unexpectedly, such as during an unhandled exception.

Il modello di applicazione Visual Basic semplifica creare un a istanza singola dell'applicazione.The Visual Basic Application model makes it easy to create a single-instance application. Un'applicazione a istanza singola è diverso da una normale applicazione in cui è possibile essere in esecuzione solo un'istanza dell'applicazione alla volta.A single-instance application differs from a normal application in that only one instance of the application can be running at a time. Un tentativo di avviare un'altra istanza di un'applicazione a istanza singola risulta nell'istanza originale, inviare una notifica, ovvero per mezzo del StartupNextInstance eventi, che è stato effettuato un altro tentativo di avvio.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. La notifica include argomenti della riga di comando dell'istanza successiva.The notification includes the subsequent instance's command-line arguments. L'istanza successiva dell'applicazione viene quindi chiusa prima di poter eseguire qualsiasi inizializzazione.The subsequent instance of the application is then closed before any initialization can occur.

Un'applicazione a istanza singola viene avviato e verifica se si tratta della prima istanza o un'istanza successiva dell'applicazione:A single-instance application starts and checks whether it is the first instance or a subsequent instance of the application:

  • Se è la prima istanza, inizia come di consueto.If it is the first instance, it starts as usual.

  • Ogni successivo tentativo di avviare l'applicazione, mentre la prima istanza è in esecuzione, comporta un comportamento molto diverso.Each subsequent attempt to start the application, while the first instance runs, results in very different behavior. Il tentativo successivo notifica la prima istanza sugli argomenti della riga di comando e quindi chiude immediatamente.The subsequent attempt notifies the first instance about the command-line arguments, and then immediately exits. La prima istanza gestisce il StartupNextInstance individuare gli argomenti della riga di comando dell'istanza successiva e continua l'esecuzione dell'evento.The first instance handles the StartupNextInstance event to determine what the subsequent instance's command-line arguments were, and continues to run.

    Questo diagramma mostra come un'istanza successiva segnala la prima istanza:This diagram shows how a subsequent instance signals the first instance:

    Diagramma che mostra l'immagine di un'applicazione di istanza singola.

Gestendo i StartupNextInstance evento, è possibile controllare il comportamento dell'applicazione a istanza singola.By handling the StartupNextInstance event, you can control how your single-instance application behaves. Ad esempio, Microsoft Outlook in genere viene eseguito come un'applicazione a istanza singola. Quando Outlook è in esecuzione e si prova ad avviare Outlook anche in questo caso, lo stato attivo passa all'istanza originale ma non si apre un'altra istanza.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.

Eventi nel modello di applicazioneEvents in the Application Model

Gli eventi seguenti sono disponibili nel modello di applicazione:The following events are found in the application model:

  • Avvio dell'applicazione.Application startup. L'applicazione genera il Startup eventi all'avvio.The application raises the Startup event when it starts. Se si gestisce questo evento, è possibile aggiungere il codice che inizializza l'applicazione prima del caricamento del form principale.By handling this event, you can add code that initializes the application before the main form is loaded. Il Startup eventi consente anche di annullare l'esecuzione dell'applicazione durante tale fase del processo di avvio, se necessario.The Startup event also provides for canceling execution of the application during that phase of the startup process, if desired.

    È possibile configurare l'applicazione per visualizzare una schermata mentre è in esecuzione il codice di avvio dell'applicazione.You can configure the application to show a splash screen while the application startup code runs. Per impostazione predefinita, il modello di applicazione elimina la schermata iniziale dello schermo quando sia la /nosplash o -nosplash viene utilizzato l'argomento della riga di comando.By default, the application model suppresses the splash screen when either the /nosplash or -nosplash command-line argument is used.

  • Le applicazioni a istanza singola.Single-instance applications. Il StartupNextInstance evento viene generato quando viene avviata una seconda istanza di un'applicazione a istanza singola.The StartupNextInstance event is raised when a subsequent instance of a single-instance application starts. L'evento passa gli argomenti della riga di comando dell'istanza successiva.The event passes the command-line arguments of the subsequent instance.

  • Le eccezioni non gestite.Unhandled exceptions. Se l'applicazione rileva un'eccezione non gestita, genera il UnhandledException evento.If the application encounters an unhandled exception, it raises the UnhandledException event. Il gestore dell'evento è possibile esaminare l'eccezione e stabilire se continuare l'esecuzione.Your handler for that event can examine the exception and determine whether to continue execution.

    Il UnhandledException evento non viene generato in alcune circostanze.The UnhandledException event is not raised in some circumstances. Per altre informazioni, vedere UnhandledException.For more information, see UnhandledException.

  • Modifiche di connettività di rete.Network-connectivity changes. Se viene modificata la disponibilità della rete del computer, l'applicazione genera il NetworkAvailabilityChanged evento.If the computer's network availability changes, the application raises the NetworkAvailabilityChanged event.

    Il NetworkAvailabilityChanged evento non viene generato in alcune circostanze.The NetworkAvailabilityChanged event is not raised in some circumstances. Per altre informazioni, vedere NetworkAvailabilityChanged.For more information, see NetworkAvailabilityChanged.

  • Chiusura dell'applicazione.Application shut down. L'applicazione fornisce il Shutdown evento per segnalare quando sta per arrestare.The application provides the Shutdown event to signal when it is about to shut down. In tal caso, gestore di è possibile assicurarsi che le operazioni dell'applicazione deve eseguire, ovvero la chiusura e il salvataggio, ad esempio, vengono completate.In that event handler, you can make sure that the operations your application needs to perform—closing and saving, for example—are completed. È possibile configurare l'applicazione arresta alla chiusura del form principale, o per arrestare solo quando tutti i form chiuso.You can configure your application to shut down when the main form closes, or to shut down only when all forms close.

DisponibilitàAvailability

Per impostazione predefinita, il modello di applicazione Visual Basic è disponibile per i progetti Windows Form.By default, the Visual Basic Application model is available for Windows Forms projects. Se si configura l'applicazione per usare un oggetto di avvio diverse o avviare il codice dell'applicazione con una classe personalizzata Sub Main, oggetto o alla classe potrebbe essere necessario fornire un'implementazione del WindowsFormsApplicationBase classe da utilizzare il modello di applicazione.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. Per informazioni sulla modifica dell'oggetto di avvio, vedere pagina dell'applicazione, creazione progetti (Visual Basic).For information about changing the startup object, see Application Page, Project Designer (Visual Basic).

Vedere ancheSee also