Estensione del modello di applicazione Visual Basic
È 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.
Il modello applicativo di Visual Basic include anche gli eventi StartupNextInstance e UnhandledException. Nell'immagine seguente viene illustrato il meccanismo di generazione di tali eventi.
Override dei metodi di base
Il metodo Run definisce l'ordine di esecuzione dei metodi 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:
OnInitialize. Per impostazione predefinita, questo metodo imposta gli stili di visualizzazione e di visualizzazione del testo, l'oggetto Principal corrente del thread principale dell'applicazione (se l'applicazione utilizza l'autenticazione di Windows) e chiama il metodo ShowSplashScreen se non è stato utilizzato /nosplash o -nosplash nell'argomento della riga di comando.
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:
ShowSplashScreen. Determina se nell'applicazione è stata definita una schermata iniziale e, in tal caso, visualizza la schermata iniziale in un thread distinto.
Il metodo ShowSplashScreen contiene il codice per la visualizzazione della 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 MinimumSplashScreenDisplayTime.
OnCreateSplashScreen. Consente l'emissione di codice in una finestra di progettazione per l'inizializzazione della schermata iniziale.
Per impostazione predefinita, questo metodo non effettua alcuna operazione. Se si seleziona una schermata iniziale per l'applicazione in Progettazione progetti in Visual Basic, viene eseguito l'override del metodo OnCreateSplashScreen con un metodo che imposta la proprietà SplashScreen su una nuova istanza del form della schermata iniziale.
OnStartup. Fornisce un punto di estensibilità per la generazione dell'evento Startup. La sequenza di avvio dell'applicazione viene interrotta se la funzione restituisce False.
Per impostazione predefinita, questo 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.
OnRun. Fornisce il punto iniziale utilizzato dall'applicazione principale quando è pronta ad avviare l'esecuzione, al termine dell'inizializzazione.
Per impostazione predefinita, prima che immetta il ciclo di messaggi di Windows Form, questo metodo chiama i metodi OnCreateMainForm (per la creazione del form principale dell'applicazione) e HideSplashScreen (per la chiusura della schermata iniziale):
OnCreateMainForm. Fornisce una soluzione per l'emissione di codice per l'inizializzazione del form principale.
Per impostazione predefinita, questo metodo non effettua alcuna operazione. Tuttavia, quando si seleziona un form principale per l'applicazione in Progettazione progetti°di°Visual Basic, la finestra di progettazione esegue l'override del metodo OnCreateMainForm con un metodo che imposta la proprietà MainForm su una nuova istanza del form principale.
HideSplashScreen. Se nell'applicazione è definita e aperta una schermata iniziale, il metodo consente di chiuderla.
Per impostazione predefinita, il metodo chiude la schermata iniziale.
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, questo metodo genera l'evento StartupNextInstance.
OnShutdown. Fornisce un punto di estensibilità per la generazione dell'evento Shutdown. Il metodo non viene eseguito se nell'applicazione principale viene generata un'eccezione non gestita.
Per impostazione predefinita, questo metodo genera l'evento Shutdown.
OnUnhandledException. Eseguito se in uno dei metodi elencati in precedenza viene generata un'eccezione non gestita.
Per impostazione predefinita, questo metodo genera l'evento UnhandledException se non è connesso un debugger e se l'applicazione gestisce 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, corrispondente all'impostazione 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+, corrispondente all'impostazione predefinita in Visual Basic .NET 2002 e Visual Basic .NET 2003.
Configurazione dell'applicazione
Nell'ambito del modello applicativo di Visual Basic la classe WindowsFormsApplicationBase fornisce proprietà protette per la configurazione dell'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 |
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) |
|
Se l'applicazione utilizzerà gli stili visivi XP. |
Procedura: attivare gli stili di visualizzazione (Visual Basic) |
|
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. |
|
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) |