Udostępnij za pomocą


Omówienie modelu aplikacji Języka 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 zdarzenia do przechwytywania nieobsługiwanych wyjątków. 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 kolejnego wystąpienia aplikacji z jedną instancją powoduje, że pierwotna instancja jest powiadamiana — za pomocą StartupNextInstance zdarzenia — o próbie kolejnego 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 rozpoczęcia aplikacji, podczas gdy pierwsza instancja jest uruchomiona, prowadzi do bardzo różnego działania. Następne uruchomienie powiadamia pierwszy proces o argumentach wiersza polecenia, a następnie natychmiast kończy swoją pracę. Pierwsza instancja obsługuje zdarzenie StartupNextInstance w celu określenia, jakie były argumenty wiersza polecenia kolejnej instancji, i nadal działa.

    Na tym diagramie pokazano, jak kolejne wystąpienie sygnalizuje pierwsze wystąpienie:

    Diagram przedstawiający widok aplikacji w jednym wystąpieniu.

Dzięki obsłudze zdarzenia StartupNextInstance można kontrolować zachowanie pojedynczego wystąpienia aplikacji. Na przykład Microsoft Outlook zazwyczaj działa jako aplikacja z pojedynczym wystąpieniem; gdy jest uruchomiony i próbujesz uruchomić go ponownie, fokus przenosi się do oryginalnego wystąpienia, ale nowe wystąpienie się nie otwiera.

Zdarzenia w modelu aplikacji

W modelu aplikacji znajdują się następujące zdarzenia:

  • Uruchamianie aplikacji. Aplikacja zgłasza zdarzenie Startup gdy się uruchamia. 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 startowy podczas działania kodu startowego aplikacji. Domyślnie model aplikacji ukrywa ekran powitalny, gdy używany jest argument wiersza polecenia /nosplash 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 kolejnej instancji.

  • Nieobsługiwane wyjątki. Jeśli aplikacja napotka nieobsługiwany wyjątek, zgłasza UnhandledException zdarzenie. Obsługujący dla tego zdarzenia może zbadać wyjątek i określić, czy kontynuować działanie.

    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 zdarzenie Shutdown, które sygnalizuje, gdy ma się zamknąć. 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 uruchomisz kod aplikacji z niestandardowym Sub Main, to ten obiekt lub klasa może wymagać dostarczenia implementacji klasy WindowsFormsApplicationBase w celu korzystania z modelu aplikacji. Aby uzyskać informacje o zmienianiu obiektu uruchamiania, zobacz Strona aplikacji, Projektant projektu (Visual Basic).

Zobacz także