Estensione del modello di applicazione Visual Basic
È possibile aggiungere funzionalità al modello applicativo eseguendo l'override dei membri Overridable
della classe WindowsFormsApplicationBase. Questa tecnica consente di personalizzare il comportamento del modello applicativo e di aggiungere chiamate ai propri metodi durante l'avvio e l'arresto dell'applicazione.
Panoramica visiva del modello applicativo
Questa sezione presenta visivamente la sequenza di chiamate di funzione nel modello applicativo di Visual Basic. La sezione successiva descrive in dettaglio lo scopo di ogni funzione.
L'immagine seguente mostra la sequenza di chiamate del modello applicativo in una normale Windows Forms Application di Visual Basic. La sequenza inizia quando la routine Sub Main
chiama il metodo Run.
Il modello applicativo di Visual Basic fornisce anche gli eventi StartupNextInstance e UnhandledException. La grafica seguente illustra il meccanismo per generare questi eventi.
Override dei metodi di base
Il metodo Run definisce l'ordine in cui vengono eseguiti i metodi Application
. Per impostazione predefinita, la routine Sub Main
per una Windows Forms Application chiama il metodo Run.
Se l'applicazione è una normale applicazione (applicazione a istanza multipla) o la prima istanza di un'applicazione a istanza singola, il metodo Run esegue i metodi Overridable
nell'ordine seguente:
OnInitialize. Per impostazione predefinita, questo metodo imposta gli stili di visualizzazione, gli stili di visualizzazione del testo e l'entità di sicurezza corrente per il thread dell'applicazione principale (se l'applicazione usa l'autenticazione di Windows) e chiama
ShowSplashScreen
se/nosplash
o-nosplash
non vengono usati come argomento della riga di comando.La sequenza di avvio dell'applicazione viene annullata se questa funzione restituisce
False
. Ciò può essere utile se ci sono circostanze in cui l'applicazione non deve essere eseguita.Il metodo OnInitialize chiama i metodi seguenti:
ShowSplashScreen. Determina se l'applicazione ha una schermata iniziale definita e, in caso affermativo, visualizza la schermata iniziale in un thread separato.
Il metodo ShowSplashScreen contiene il codice che visualizza la schermata iniziale per almeno il numero di millisecondi specificato dalla proprietà MinimumSplashScreenDisplayTime. Per usare questa funzionalità, è necessario aggiungere la schermata iniziale all'applicazione usando Creazione progetti (che imposta la proprietà
My.Application.MinimumSplashScreenDisplayTime
su due secondi) oppure impostare la proprietàMy.Application.MinimumSplashScreenDisplayTime
in un metodo che esegue l'override del metodo OnInitialize o OnCreateSplashScreen. Per ulteriori informazioni, vedere MinimumSplashScreenDisplayTime.OnCreateSplashScreen. Consente a una finestra di progettazione di generare il codice che inizializza la schermata iniziale.
Per impostazione predefinita, questo metodo non effettua alcuna operazione. Se si seleziona una schermata iniziale per l'applicazione in Creazione progetti di Visual Basic, la finestra di progettazione esegue l'override del metodo OnCreateSplashScreen con un metodo che imposta la proprietà SplashScreen su una nuova istanza del modulo della schermata iniziale.
OnStartup. Fornisce un punto di estendibilità per generare l'evento
Startup
. La sequenza di avvio dell'applicazione si arresta se questa funzione restituisceFalse
.Per impostazione predefinita, questo metodo genera l'evento Startup. Se il gestore dell'evento imposta la proprietà Cancel dell'argomento dell'evento su
True
, il metodo restituisceFalse
per annullare l'avvio dell'applicazione.OnRun. Fornisce il punto di partenza per il momento in cui l'applicazione principale è pronta per l'avvio dell'esecuzione, al termine dell'inizializzazione.
Per impostazione predefinita, prima di immettere il ciclo di messaggi di Windows Form, questo metodo chiama i metodi
OnCreateMainForm
(per creare il modulo principale dell'applicazione) eHideSplashScreen
(per chiudere la schermata iniziale):OnCreateMainForm. Consente a una finestra di progettazione di generare il codice che inizializza il form principale.
Per impostazione predefinita, questo metodo non effettua alcuna operazione. Quando, tuttavia, si seleziona un modulo principale per l'applicazione in Creazione 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 modulo principale.
HideSplashScreen. Se nell'applicazione è definita una schermata iniziale che è aperta, questo metodo chiude la schermata iniziale.
Per impostazione predefinita, questo metodo chiude la schermata iniziale.
OnStartupNextInstance. Consente di personalizzare il comportamento di un'applicazione a istanza singola all'avvio di un'altra istanza dell'applicazione.
Per impostazione predefinita, questo metodo genera l'evento StartupNextInstance.
OnShutdown. Fornisce un punto di estendibilità per generare l'evento
Shutdown
. Questo metodo non viene eseguito se si verifica un'eccezione non gestita nell'applicazione principale.Per impostazione predefinita, questo metodo genera l'evento Shutdown.
OnUnhandledException. Viene eseguita se si verifica un'eccezione non gestita in uno dei metodi elencati in precedenza.
Per impostazione predefinita, questo metodo genera l'evento UnhandledException finché un debugger non viene collegato e l'applicazione gestisce l'evento
UnhandledException
.
Se l'applicazione è un'applicazione a istanza singola ed è già in esecuzione, l'istanza successiva dell'applicazione chiama il metodo OnStartupNextInstance sull'istanza originale dell'applicazione e poi termina.
Il costruttore OnStartupNextInstance(StartupNextInstanceEventArgs) chiama la proprietà UseCompatibleTextRendering per determinare quale motore di rendering del testo utilizzare per i moduli dell'applicazione. Per impostazione predefinita, la proprietà UseCompatibleTextRendering restituisce False
, che indica che viene utilizzato il motore di rendering del testo GDI, ovvero l'impostazione predefinita in Visual Basic 2005 e nelle versioni successive. È possibile eseguire l'override della proprietà UseCompatibleTextRendering per restituire True
, che indica che viene usato il motore di rendering del testo GDI+, ovvero l'impostazione predefinita in Visual Basic .NET 2002 e Visual Basic .NET 2003.
Configurazione dell'applicazione
Come parte del modello applicativo di Visual Basic, la classe WindowsFormsApplicationBase fornisce proprietà protette che configurano l'applicazione. Queste proprietà devono essere impostate nel costruttore della classe di implementazione.
In un progetto predefinito di Windows Form, Creazione progetti crea il codice per impostare le proprietà con le impostazioni della finestra di progettazione. Le proprietà vengono usate solo all'avvio dell'applicazione; impostarli dopo l'avvio dell'applicazione non ha alcun effetto.
Proprietà | Determina | Impostazione nel riquadro Applicazione di Creazione progetti |
---|---|---|
IsSingleInstance | Se l'applicazione viene eseguita come applicazione a istanza singola o a istanza multipla. | Casella di controllo Rendi a istanza singola |
EnableVisualStyles | Se l'applicazione userà stili di visualizzazione che corrispondono a Windows XP. | Casella di controllo Abilita stili di visualizzazione XP |
SaveMySettingsOnExit | Se l'applicazione salva automaticamente le impostazioni utente dell'applicazione cambia quando l'applicazione viene chiusa. | Casella di controllo Salva My.Settings alla chiusura |
ShutdownStyle | Ciò che fa sì che l'applicazione termini, ad esempio quando il modulo di avvio viene chiuso o quando l'ultimo modulo viene chiuso. | Elenco Modalità di arresto |
Vedi anche
- ApplicationBase
- Startup
- StartupNextInstance
- UnhandledException
- Shutdown
- NetworkAvailabilityChanged
- Cenni preliminari sul modello di applicazione Visual Basic
- Application Page, Project Designer (Visual Basic) (Pagina Applicazione, Creazione progetti (Visual Basic))