Condividi tramite


Estensione del modello di applicazione visual Basic

È possibile aggiungere funzionalità al modello di applicazione eseguendo l'override dei Overridable membri della WindowsFormsApplicationBase classe . Questa tecnica consente di personalizzare il comportamento del modello di applicazione e di aggiungere chiamate ai propri metodi durante l'avvio e l'arresto dell'applicazione.

Panoramica visiva del modello di applicazione

Questa sezione presenta visivamente la sequenza di chiamate di funzione nel modello di applicazione visual Basic. La sezione successiva descrive in dettaglio lo scopo di ogni funzione.

L'immagine seguente mostra la sequenza di chiamata del modello di applicazione in una normale applicazione Windows Form di Visual Basic. La sequenza inizia quando la Sub Main routine chiama il Run metodo .

Diagramma che mostra la sequenza di chiamata del modello di applicazione.

Il modello di applicazione Visual Basic fornisce anche gli eventi StartupNextInstance e UnhandledException. La grafica seguente illustra il meccanismo per generare questi eventi.

Diagramma che mostra il metodo OnStartupNextInstance che genera l'evento StartupNextInstance.

Diagramma che mostra il metodo OnUnhandledException che genera l'evento UnhandledException.

Sostituzione dei metodi di base

Il Run metodo definisce l'ordine in cui vengono eseguiti i Application metodi. Per impostazione predefinita, la Sub Main routine per un'applicazione Windows Form chiama il Run metodo .

Se l'applicazione è una normale applicazione (applicazione a istanza multipla) o la prima istanza di un'applicazione a istanza singola, il Run metodo esegue i Overridable metodi nell'ordine seguente:

  1. OnInitialize. Per impostazione predefinita, questo metodo imposta gli stili visivi, gli stili di visualizzazione del testo e l'entità corrente per il thread principale dell'applicazione (se l'applicazione utilizza l'autenticazione di Windows) e chiama ShowSplashScreen se né /nosplash-nosplash vengono utilizzati come argomenti 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 OnInitialize metodo chiama i metodi seguenti:

    1. ShowSplashScreen. Determina se l'applicazione ha una schermata iniziale definita e, in caso affermativo, visualizza la schermata iniziale in un thread separato.

      Il ShowSplashScreen metodo contiene il codice che visualizza la schermata iniziale per almeno il numero di millisecondi specificato dalla MinimumSplashScreenDisplayTime proprietà . Per usare questa funzionalità, è necessario aggiungere la schermata iniziale all'applicazione utilizzando il Progettazione progetti (che imposta la proprietà My.Application.MinimumSplashScreenDisplayTime su due secondi) oppure impostare la proprietà in un metodo che esegue l'override del metodo My.Application.MinimumSplashScreenDisplayTime o OnInitialize mediante OnCreateSplashScreen. Per altre informazioni, vedere MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen. Consente a un designer di generare 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 Progettazione Progetto di Visual Basic, la finestra di progettazione sostituirà il OnCreateSplashScreen metodo con un metodo che imposta la proprietà SplashScreen su una nuova istanza del modulo della schermata iniziale.

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

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

  3. OnRun. Fornisce il punto di partenza per quando 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 ( OnCreateMainForm per creare il modulo principale dell'applicazione) e HideSplashScreen (per chiudere la schermata iniziale):

    1. OnCreateMainForm. Fornisce un modo per un progettista di generare codice che inizializza il form principale.

      Per impostazione predefinita, questo metodo non effettua alcuna operazione. Tuttavia, quando si seleziona un form principale per l'applicazione nel Project Designer di Visual Basic, il designer esegue l'override del OnCreateMainForm metodo con un metodo che imposta la MainForm proprietà su una nuova istanza del form principale.

    2. HideSplashScreen. Se l'applicazione ha una schermata iniziale definita ed è aperta, questo metodo chiude la schermata iniziale.

      Per impostazione predefinita, questo metodo chiude la schermata iniziale.

  4. 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 .

  5. 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 .

  6. OnUnhandledException. 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 è collegato e l'applicazione gestisce l'evento UnhandledException .

Se l'applicazione è un'applicazione a istanza singola e l'applicazione è già in esecuzione, l'istanza successiva dell'applicazione chiama il OnStartupNextInstance metodo sull'istanza originale dell'applicazione e quindi termina.

Il OnStartupNextInstance(StartupNextInstanceEventArgs) costruttore chiama la UseCompatibleTextRendering proprietà per determinare quale motore di rendering del testo utilizzare per i moduli dell'applicazione. Per impostazione predefinita, la UseCompatibleTextRendering proprietà restituisce False, che indica che viene utilizzato il motore di rendering del testo GDI, ovvero l'impostazione predefinita in Visual Basic 2005 e versioni successive. È possibile eseguire l'override della UseCompatibleTextRendering proprietà 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 di applicazione Visual Basic, la WindowsFormsApplicationBase classe fornisce proprietà protette che configurano l'applicazione. Queste proprietà devono essere impostate nel costruttore della classe di implementazione.

In un progetto Windows Forms predefinito, il Progettazione dei progetti crea 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 L'impostazione nel pannello Applicazione del Project Designer
IsSingleInstance Indica se l'applicazione viene eseguita come applicazione a istanza singola o a istanza multipla. Casella di controllo Rendi applicazione 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 modifiche alle impostazioni utente quando 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 delle modalità di arresto

Vedere anche