Rozšíření aplikačního modelu jazyka Visual Basic
Můžete přidat funkcionalitu do aplikačního modelu přetížením členů Overridable třídy WindowsFormsApplicationBase. Tato technika vám umožňuje přizpůsobit chování aplikačního modelu a také přidání volání vlastních metod při spuštění a vypnutí aplikace.
Vizuální přehled aplikačního modelu
Tato část vizuálně představuje sekvenci volání funkcí v aplikačním modelu Visual Basic. V další oddíl popisuje podrobně účel jednotlivých funkcí.
Následující obrázek znázorňuje sekvenci volání aplikačního modelu v normální aplikaci Visual Basic modelu Windows Forms. Sekvence začíná když procedura Sub Main volá metodu Run.
Aplikační model Visual Basic také poskytuje události StartupNextInstance a UnhandledException. Následující grafiku zobrazit mechanismus pro vyvolání těchto událostí.
Přetížení základních metod
Metoda Run definuje pořadí, ve kterém se spouštějí Application metody. By ve výchozím nastavení, procedura Sub Main aplikačního modelu Windows Forms zavolá metodu Run.
Jestliže je aplikace normální aplikace (více-instanční aplikace) nebo první instance jedno-instanční aplikace, metoda Run spustí metody Overridable v uvedeném pořadí:
OnInitialize. Ve výchozím nastavením, tato metoda nastaví vizuální styly, styly zobrazení textu a aktuální objekt zabezpečení pro hlavní vlákno aplikace (pokud aplikace používá ověřování systému Windows) a zavolá ShowSplashScreen, pokud ani /nosplash ani -nosplash není nastaven jako argument příkazové řádky.
Sekvence spouštění aplikace je zrušena v případě, že tato funkce vrátí False. To může být užitečné, pokud existují okolnosti, ve který by aplikace neměla být spuštěna.
Metoda OnInitialize volá následující metody:
ShowSplashScreen. Určuje, zda má aplikace nastavenu úvodní obrazovku a pokud ano, zobrazí úvodní obrazovku na samostatném vlákně.
Metoda ShowSplashScreen obsahuje kód, který se zobrazí úvodní obrazovku alespoň na počet milisekund, které jsou určeny v vlastnosti MinimumSplashScreenDisplayTime. Chcete-li použít tuto funkci, musíte přidat úvodní obrazovku do vaší aplikace pomocí Návrháře projektu (který nastaví vlastnost My.Application.MinimumSplashScreenDisplayTime na hodnotu dvě sekundy), nebo nastavit vlastnost My.Application.MinimumSplashScreenDisplayTime v metodě, která přetěžuje metodu OnInitialize nebo OnCreateSplashScreen. Další informace naleznete v tématu MinimumSplashScreenDisplayTime.
OnCreateSplashScreen. Umožňuje designeru vyslat kód, který inicializuje úvodní obrazovku.
Ve výchozím nastavení tato metoda nemá žádný účinek. Pokud jste vybrali úvodní obrazovku pro vaší aplikaci v designeru projektůVisual Basic, designer přetíží metodu OnCreateSplashScreen metodou, která nastaví vlastnost SplashScreen na novou instanci úvodní obrazovky formuláře.
OnStartup. Poskytuje bod rozšiřitelnosti pro zvýšení Startup událostí. Spouštění aplikace se zastaví, pokud tato funkce vrátí False.
Ve výchozím nastavení, tato metoda vyvolá událost Startup. Pokud obslužná rutina událost nastaví vlastnost Cancel argumentu události na True, metoda vrátí hodnotu False k stornování spuštění aplikace.
OnRun. Poskytuje počáteční bod pro začátek práce aplikace po tom, co proběhla inicializace.
Ve výchozím nastavení, před tím než vstoupí do smyčka zpráv modelu Windows Forms, tato metoda volá metody OnCreateMainForm (k vytvoření hlavního formuláře aplikace) a HideSplashScreen (k zavření úvodní obrazovky):
OnCreateMainForm. Umožňuje designeru vyvolat kód, který inicializuje hlavní formulář.
Ve výchozím nastavení tato metoda nemá žádný účinek. Pokud jste vybrali hlavní formulář pro vaší aplikaci v designeru projektůVisual Basic, designer přetíží metodu OnCreateMainForm metodou, která nastaví vlastnost MainForm na novou instanci hlavního formuláře.
HideSplashScreen. Pokud aplikace obsahuje úvodní obrazovku a je otevřená, tato metoda zavře úvodní obrazovku.
Podle ve výchozím nastavení, tato metoda zavře úvodní obrazovka.
OnStartupNextInstance. Umožňuje přizpůsobit chování jedno-instanční aplikace při spuštění jiné instance aplikace.
Standardně tato metoda vyvolá StartupNextInstance událostí.
OnShutdown. Poskytuje bod rozšiřitelnosti pro zvýšení Shutdown událostí. Tuto metoda nebude spuštěna pokud v hlavní aplikaci dojde k neošetřené výjimce.
Standardně tato metoda vyvolá Shutdown událostí.
OnUnhandledException. Provede se, pokud došlo v vyvolání neošetřené výjimky v některé z výše uvedených metod.
Ve výchozím nastavení tato metoda vyvolá událost UnhandledException v případě, že ladící program není připojen a aplikace zpracovává událost UnhandledException.
Pokud aplikace je jedno-instanční aplikace a aplikace je již spuštěna, další instance aplikace zavolá metodu OnStartupNextInstance v původní instanci aplikace a potom se ukončí.
Konstruktor WindowsFormsApplicationBase zavolá vlastnost UseCompatibleTextRendering k určení, který vykreslovací modul použít u formulářů aplikace pří vykreslování textu. Ve výchozím nastavení vlastnost UseCompatibleTextRendering vrátí False. Toto znamená, že je použit GDI textový vykreslovací modul, což je výchozí hodnota v Visual Basic 2005. Můžete přepsat UseCompatibleTextRendering vlastnost vrátí True, která označuje, že modul vykreslování textu GDI + použít, výchozí v jazyce Visual Basic.NET 2002 a Visual Basic.NET 2003.
Konfigurace aplikace
Jako součást aplikačního modelu Visual Basic, třída WindowsFormsApplicationBase poskytuje chráněné vlastnosti, které konfigurují aplikaci. Tyto vlastnosti by měla být nastavena v konstruktoru implementované třídy.
Ve výchozím projektu model Windows Forms, Návrhář projektu vytvoří kód k nastavení vlastností s výchozím nastavením designeru. Vlastnosti jsou používána pouze při spouštění aplikace a jejich nastavení po spuštění aplikace nemá žádný vliv.
Vlastnost |
Význam |
Nastavení pomocí Návrháře projektu |
Určuje, zda aplikace bude spuštěna jako jedno-instanční nebo více-instanční aplikace. |
Postupy: Specifikace chování vytváření instancí pro aplikace (Visual Basic) |
|
Zda aplikace bude používat vizuální styly XP. |
||
Zda aplikace automaticky uloží změny nastavení uživatele při ukončení aplikace. |
Vyberte zaškrtávací políčko Uložit My.Settings při vypnutí v podokně Aplikace v Návrháři projektu. |
|
Co způsobuje, že je aplikace ukončena, například při zavření hlavního formuláře nebo kdy dojde k zavření všech formulářů. |
Postupy: Specifikace chování při vypnutí pro aplikaci (Visual Basic) |