Condividi tramite


Estensione del modello di applicazione Visual Basic

Aggiornamento: novembre 2007

È possibile aggiungere funzionalità al modello di applicazione eseguendo l'override dei membri Overridable della classe WindowsFormsApplicationBase. In tal modo sarà possibile personalizzare il comportamento del modello di applicazione e aggiungere chiamate ai metodi personalizzati al momento dell'avvio e della chiusura dell'applicazione.

Panoramica visiva del modello di applicazione

In questa sezione viene presentata la sequenza visiva delle chiamate di funzione nel modello di applicazione Visual Basic. Nella sezione successiva verrà fornita una descrizione dettagliata dello scopo di ciascuna funzione.

Nell'immagine seguente viene illustrata la sequenza di chiamata del modello di applicazione in una normale applicazione Windows Form in Visual Basic. La sequenza viene avviata quando la routine Sub Main esegue la chiamata al metodo Run.

Modello di applicazioni Visual Basic -- Esecuzione

Il modello di applicazione di Visual Basic fornisce inoltre gli eventi StartupNextInstance e UnhandledException. Nell'immagine seguente viene illustrato il meccanismo di generazione di tali eventi.

Modello di applicazioni Visual Basic -- Istanza successivaEccezione non gestita del modello di applicazioni Visual Basic

Override dei metodi di base

Metodo My.Application.Run definisce l'ordine in cui viene eseguito il metodo Application. Per impostazione predefinita, mediante la procedura Sub Main per un'applicazione Windows Form viene chiamato il metodo Run.

Se l'applicazione è un'applicazione normale, ovvero un'applicazione a più istanze, o è la prima istanza di un'applicazione a istanza singola, il metodo Run esegue i metodi Overridable nel seguente ordine:

  1. OnInitialize. Per impostazione predefinita, il metodo imposta gli stili visivi, gli stili di visualizzazione del testo e il principale per il thread corrente dell'applicazione principale (se l'applicazione utilizza l'autenticazione Windows) ed esegue la chiamata di ShowSplashScreen se come argomento della riga di comando non viene utilizzato /nosplash o -nosplash.

    La sequenza di avvio dell'applicazione viene annullata se la funzione restituisce False. Questa funzionalità risulta particolarmente utile nei casi in cui non è necessario eseguire l'applicazione.

    Il metodo OnInitialize chiama i metodi seguenti:

    1. ShowSplashScreen. Determina se nell'applicazione è presente una schermata iniziale definita e, in caso affermativo, visualizza la schermata di avvio in un thread separato.

      Nel metodo ShowSplashScreen è contenuto il codice che consente di visualizzare la schermata iniziale per almeno il numero di millisecondi specificati dalla proprietà MinimumSplashScreenDisplayTime. Per utilizzare la funzionalità, è necessario aggiungere la schermata iniziale all'applicazione mediante Progettazione progetti (che imposta la proprietà My.Application.MinimumSplashScreenDisplayTime su due secondi), o impostare la proprietà My.Application.MinimumSplashScreenDisplayTime su un metodo che esegue l'override del metodo OnInitialize o OnCreateSplashScreen. Per ulteriori informazioni, vedere Proprietà My.Application.MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen. Consente alla progettazione di emettere codice che inizializza la schermata iniziale.

      Per impostazione predefinita, il metodo non effettua alcuna operazione. Se si seleziona una schermata iniziale dell'applicazione nella Progettazione progetti di Visual Basic, la progettazione esegue l'override del metodo OnCreateSplashScreen con un metodo che consente di impostare la proprietà SplashScreen su una nuova istanza del form della schermata iniziale.

  2. OnStartup. Fornisce un punto di estendibilità per generare l'evento Startup. La sequenza di avvio dell'applicazione viene interrotta se la funzione restituisce False.

    Per impostazione predefinita, il metodo genera l'evento Startup. Se tramite il gestore eventi la proprietà Cancel dell'argomento di evento viene impostata su True, il metodo restituisce False per annullare l'avvio dell'applicazione.

  3. OnRun. Fornisce il punto di partenza quando l'applicazione è pronta per essere eseguita, al termine dell'inizializzazione.

    Per impostazione predefinita, prima di accedere al ciclo di messaggi di Windows Form, il metodo esegue la chiamata ai metodi OnCreateMainForm (per creare il form principale dell'applicazione) e HideSplashScreen (per chiudere la schermata iniziale):

    1. OnCreateMainForm. Fornisce una soluzione per l'emissione di codice che inizializza il form principale.

      Per impostazione predefinita, il metodo non effettua alcuna operazione. Tuttavia, quando si seleziona un form principale per l'applicazione nella Progettazione progetti di Visual Basic, la progettazione esegue l'override del metodo OnCreateMainForm con un metodo che consente di impostare la proprietà MainForm su una nuova istanza del form principale.

    2. HideSplashScreen. Se nell'applicazione è definita e aperta una schermata iniziale, il metodo consente di chiuderla.

      Per impostazione predefinita, il metodo chiude la schermata iniziale.

  4. OnStartupNextInstance. Fornisce una soluzione per personalizzare il comportamento di un'applicazione a istanza singola quando viene avviata un'altra istanza dell'applicazione.

    Per impostazione predefinita, il metodo genera l'evento StartupNextInstance.

  5. OnShutdown. Fornisce un punto di estendibilità per generare l'evento Shutdown. Il metodo non viene eseguito se nell'applicazione principale viene generata un'eccezione non gestita.

    Per impostazione predefinita, il metodo genera l'evento Shutdown.

  6. OnUnhandledException. Eseguito se in uno dei metodi sopra elencati viene generata un'eccezione non gestita.

    Per impostazione predefinita, il metodo genera l'evento UnhandledException, purché non sia associato un debugger e l'applicazione stia gestendo l'evento UnhandledException.

Se l'applicazione è un'applicazione a istanza singola ed è già in esecuzione, la successiva istanza dell'applicazione esegue la chiamata al metodo OnStartupNextInstance sull'istanza originale dell'applicazione, quindi chiude l'applicazione.

Il costruttore WindowsFormsApplicationBase chiama la proprietà UseCompatibleTextRendering per stabilire quale motore di rendering del testo utilizzare per i form dell'applicazione. Per impostazione predefinita, la proprietà UseCompatibleTextRendering restituisce False, che indica che verrà utilizzato il motore di rendering del testo GDI, che rappresenta l'opzione predefinita in Visual Basic 2005. È possibile eseguire l'override della proprietà UseCompatibleTextRendering per restituire True, che indica che verrà utilizzato il motore di rendering del testo GDI+, che rappresenta l'impostazione predefinita in Visual Basic .NET 2002 e Visual Basic .NET 2003.

Configurazione dell'applicazione

Nell'ambito del modello Applicazione di Visual Basic, tramite la classe WindowsFormsApplicationBase vengono fornite proprietà protette che consentono di configurare l'applicazione. Queste proprietà devono essere impostate nel costruttore della classe di implementazione.

In un progetto Windows Form predefinito, Progettazione progetti consente di creare codice per impostare le proprietà con le impostazioni di progettazione. Le proprietà sono utilizzate solo all'avvio dell'applicazione. Se si impostano successivamente all'avvio dell'applicazione, non avranno alcun effetto.

Proprietà

Determina

Impostazione con Progettazione progetti

IsSingleInstance

Se l'applicazione viene eseguita come applicazione a istanza singola o a più istanze.

Procedura: specificare il comportamento di creazione delle istanze di un'applicazione (Visual Basic)

EnableVisualStyles

Se l'applicazione utilizzerà gli stili visivi XP.

Procedura: attivare gli stili di visualizzazione (Visual Basic)

SaveMySettingsOnExit

Se l'applicazione salva automaticamente le modifiche apportate alle impostazioni utente dell'applicazione alla chiusura dell'applicazione.

Dal pannello Applicazione di Progettazione progetti scegliere la casella di controllo Salva My.Settings alla chiusura.

ShutdownStyle

Le cause che inducono l'interruzione dell'applicazione, ad esempio la chiusura del form principale o la chiusura di tutti i form.

Procedura: specificare il comportamento di arresto di un'applicazione (Visual Basic)

Vedere anche

Concetti

Cenni preliminari sul modello di applicazione Visual Basic

Riferimenti

Oggetto My.Application

Evento My.Application.Startup

Evento My.Application.StartupNextInstance

Evento My.Application.UnhandledException

Evento My.Application.Shutdown

Evento My.Application.NetworkAvailabilityChanged

WindowsFormsApplicationBase