Omówienie modelu aplikacji Visual Basic
Visual Basic udostępnia dobrze zdefiniowany model do kontrolowania zachowania aplikacji Windows Forms: modelu aplikacji Visual Basic. Ten model obejmuje zdarzenia do obsługi uruchamiania i zamykania aplikacji, a także zdarzeń do przechwytywania nieobsługiwane wyjątki. Zapewnia również obsługę tworzenia aplikacji z pojedynczym wystąpieniem. Model aplikacji jest rozszerzalny, więc deweloperzy, którzy potrzebują większej kontroli, mogą dostosować jego metody zastępowalne.
Zastosowania dla modelu aplikacji
Typowa aplikacja musi wykonywać zadania podczas uruchamiania i zamykania. Na przykład po uruchomieniu aplikacja może wyświetlić ekran powitalny, nawiązać połączenia z bazą danych, załadować zapisany stan itd. Po zamknięciu aplikacji może zamknąć połączenia z bazą danych, zapisać bieżący stan itd. Ponadto aplikacja może wykonać określony kod, gdy aplikacja zostanie nieoczekiwanie zamknięta, na przykład podczas nieobsługiwanego wyjątku.
Model aplikacji języka Visual Basic ułatwia tworzenie aplikacji z pojedynczym wystąpieniem. Aplikacja z pojedynczym wystąpieniem różni się od normalnej aplikacji, dlatego w danym momencie może działać tylko jedno wystąpienie aplikacji. Próba uruchomienia innego wystąpienia aplikacji pojedynczego wystąpienia powoduje, że oryginalne wystąpienie jest powiadamiane — za pomocą StartupNextInstance
zdarzenia — że podjęto kolejną próbę uruchomienia. Powiadomienie zawiera argumenty wiersza polecenia kolejnego wystąpienia. Kolejne wystąpienie aplikacji jest następnie zamykane przed wystąpieniem inicjalizacji.
Aplikacja z pojedynczym wystąpieniem uruchamia się i sprawdza, czy jest to pierwsze wystąpienie, czy kolejne wystąpienie aplikacji:
Jeśli jest to pierwsze wystąpienie, zaczyna się jak zwykle.
Każda kolejna próba uruchomienia aplikacji, podczas gdy pierwsze wystąpienie jest uruchomione, powoduje bardzo różne zachowanie. Kolejna próba powiadamia pierwsze wystąpienie o argumentach wiersza polecenia, a następnie natychmiast kończy działanie. Pierwsze wystąpienie obsługuje
StartupNextInstance
zdarzenie, aby określić, jakie były argumenty wiersza polecenia kolejnego wystąpienia, i nadal działać.Na tym diagramie pokazano, jak kolejne wystąpienie sygnalizuje pierwsze wystąpienie:
Dzięki obsłudze zdarzenia StartupNextInstance
można kontrolować zachowanie aplikacji pojedynczego wystąpienia. Na przykład program Microsoft Outlook zazwyczaj działa jako aplikacja z pojedynczym wystąpieniem; gdy program Outlook jest uruchomiony i próbujesz ponownie uruchomić program Outlook, fokus przenosi się do oryginalnego wystąpienia, ale inne wystąpienie nie jest otwarte.
Zdarzenia w modelu aplikacji
W modelu aplikacji znajdują się następujące zdarzenia:
Uruchamianie aplikacji. Aplikacja zgłasza zdarzenie podczas jego uruchamiania Startup . Dzięki obsłudze tego zdarzenia można dodać kod, który inicjuje aplikację przed załadowaniem formularza głównego. Zdarzenie
Startup
zapewnia również anulowanie wykonywania aplikacji w tej fazie procesu uruchamiania, w razie potrzeby.Aplikację można skonfigurować tak, aby wyświetlała ekran powitalny podczas uruchamiania kodu uruchamiania aplikacji. Domyślnie model aplikacji pomija ekran powitalny, gdy
/nosplash
jest używany argument wiersza polecenia lub-nosplash
.Aplikacje z pojedynczym wystąpieniem. Zdarzenie StartupNextInstance jest wywoływane, gdy zostanie uruchomione kolejne wystąpienie aplikacji z pojedynczym wystąpieniem. Zdarzenie przekazuje argumenty wiersza polecenia dla kolejnego wystąpienia.
Nieobsługiwane wyjątki. Jeśli aplikacja napotka nieobsługiwany wyjątek, zgłasza UnhandledException zdarzenie. Procedura obsługi dla tego zdarzenia może zbadać wyjątek i określić, czy kontynuować wykonywanie.
Zdarzenie
UnhandledException
nie jest zgłaszane w pewnych okolicznościach. Aby uzyskać więcej informacji, zobacz UnhandledException.Zmiany łączności sieciowej. Jeśli dostępność sieci komputera ulegnie zmianie, aplikacja zgłasza NetworkAvailabilityChanged zdarzenie.
Zdarzenie
NetworkAvailabilityChanged
nie jest zgłaszane w pewnych okolicznościach. Aby uzyskać więcej informacji, zobacz NetworkAvailabilityChanged.Aplikacja została zamknięta. Aplikacja udostępnia Shutdown zdarzenie sygnalizacyjne, gdy zostanie zamknięte. W tej procedurze obsługi zdarzeń możesz upewnić się, że operacje, które aplikacja musi wykonać — na przykład zamykając i zapisując — zostały ukończone. Aplikację można skonfigurować tak, aby została zamknięta po zamknięciu formularza głównego lub zamknąć tylko wtedy, gdy wszystkie formularze zostaną zamknięte.
Dostępność
Domyślnie model aplikacji Języka Visual Basic jest dostępny dla projektów Windows Forms. Jeśli skonfigurujesz aplikację tak, aby korzystała z innego obiektu uruchamiania lub uruchomić kod aplikacji z niestandardowym Sub Main
obiektem lub klasą, może być konieczne udostępnienie implementacji WindowsFormsApplicationBase klasy w celu korzystania z modelu aplikacji. Aby uzyskać informacje o zmienianiu obiektu uruchamiania, zobacz Strona aplikacji, Project Projektant (Visual Basic).