Condividi tramite


Panoramica del modello di applicazione Visual Basic

Visual Basic fornisce un modello ben definito per controllare il comportamento delle applicazioni Windows Form: il modello di applicazione Visual Basic. Questo modello include eventi per la gestione dell'avvio e dell'arresto dell'applicazione, nonché eventi per rilevare eccezioni non gestite. Fornisce anche il supporto per lo sviluppo di applicazioni a istanza singola. Il modello di applicazione è estendibile, quindi gli sviluppatori che necessitano di un maggiore controllo possono personalizzare i metodi sostituibili.

Utilizzi del modello di applicazione

Un'applicazione tipica deve eseguire attività all'avvio e all'arresto. Ad esempio, all'avvio, l'applicazione può visualizzare una schermata iniziale, stabilire connessioni di database, caricare uno stato salvato e così via. Quando l'applicazione viene arrestata, può chiudere le connessioni di database, salvare lo stato corrente e così via. Inoltre, l'applicazione può eseguire codice specifico quando l'applicazione viene arrestata in modo imprevisto, ad esempio durante un'eccezione non gestita.

Il modello di applicazione Visual Basic semplifica la creazione di un'applicazione a istanza singola . Un'applicazione a istanza singola è diversa da un'applicazione normale in quanto una sola istanza dell'applicazione può essere eseguita alla volta. Un tentativo di avviare un'altra istanza di un'applicazione a istanza singola comporta la notifica dell'istanza originale, tramite l'evento StartupNextInstance , che è stato effettuato un altro tentativo di avvio. La notifica include gli argomenti della riga di comando dell'istanza successiva. L'istanza successiva dell'applicazione viene quindi chiusa prima di poter eseguire qualsiasi inizializzazione.

Un'applicazione a istanza singola viene avviata e verifica se si tratta della prima istanza o di un'istanza successiva dell'applicazione:

  • Se è la prima istanza, inizia come di consueto.

  • Ogni tentativo successivo di avviare l'applicazione, mentre la prima istanza viene eseguita, comporta un comportamento molto diverso. Il tentativo seguente informa la prima istanza degli argomenti della riga di comando e poi si chiude immediatamente. La prima istanza gestisce l'evento StartupNextInstance per determinare quali erano gli argomenti della riga di comando dell'istanza successiva, e continua a funzionare.

    Questo diagramma mostra come un'istanza successiva segnali la prima istanza:

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

Gestendo l'evento StartupNextInstance , è possibile controllare il comportamento dell'applicazione a istanza singola. Ad esempio, Microsoft Outlook viene in genere eseguito come applicazione a istanza singola; quando Outlook è in esecuzione e si tenta di riavviare Outlook, lo stato attivo passa all'istanza originale, ma un'altra istanza non viene aperta.

Eventi nel modello di applicazione

Nel modello di applicazione sono disponibili gli eventi seguenti:

  • Avvio dell'applicazione. L'applicazione genera l'evento Startup all'avvio. Gestendo questo evento, è possibile aggiungere codice che inizializza l'applicazione prima del caricamento del modulo principale. L'evento Startup fornisce anche l'annullamento dell'esecuzione dell'applicazione durante tale fase del processo di avvio, se necessario.

    È possibile configurare l'applicazione per visualizzare una schermata iniziale durante l'esecuzione del codice di avvio dell'applicazione. Il modello di applicazione, per impostazione predefinita, nasconde la schermata di avvio quando viene usato l'argomento della riga di comando /nosplash o -nosplash.

  • Applicazioni a istanza singola. L'evento StartupNextInstance viene generato all'avvio di un'istanza successiva di un'applicazione a istanza singola. L'evento passa gli argomenti della riga di comando dell'istanza successiva.

  • Eccezioni non gestite. Se l'applicazione rileva un'eccezione non gestita, genera l'evento UnhandledException . Il gestore per tale evento può esaminare l'eccezione e determinare se continuare l'esecuzione.

    L'evento UnhandledException non viene generato in alcune circostanze. Per altre informazioni, vedere UnhandledException.

  • Modifiche alla connettività di rete. Se la disponibilità di rete del computer cambia, l'applicazione genera l'evento NetworkAvailabilityChanged .

    L'evento NetworkAvailabilityChanged non viene generato in alcune circostanze. Per altre informazioni, vedere NetworkAvailabilityChanged.

  • Applicazione arrestata. L'applicazione fornisce l'evento Shutdown per segnalare quando sta per arrestarsi. In tale gestore eventi è possibile assicurarsi che le operazioni che l'applicazione deve eseguire, ad esempio chiudendo e salvando, vengono completate. È possibile configurare l'applicazione per l'arresto alla chiusura del modulo principale o per l'arresto solo quando tutti i moduli vengono chiusi.

Disponibilità

Per impostazione predefinita, il modello di applicazione Visual Basic è disponibile per i progetti Windows Form. Se si configura l'applicazione in modo che usi un oggetto di avvio diverso o si avvii il codice dell'applicazione con un oggetto personalizzato Sub Main, tale oggetto o classe potrebbe dover fornire un'implementazione della WindowsFormsApplicationBase classe per usare il modello di applicazione. Per informazioni sulla modifica dell'oggetto di avvio, vedere Pagina applicazione, Progettazione progetti (Visual Basic).For information about changing the startup object, see Application Page, Project Designer (Visual Basic).

Vedere anche