Поделиться через


Расширение модели приложения Visual Basic

Модель приложения можно дополнять новыми функциональными возможностями, переопределяя члены Overridable класса WindowsFormsApplicationBase. Этот способ позволяет настроить поведение модели приложения и добавлять вызовы собственных методов во время запуска и завершения работы приложения.

Наглядный обзор модели приложения

В этом разделе наглядно представлена последовательность вызовов функций в модели приложения Visual Basic. В следующем разделе подробно описывается назначение каждой функции.

На следующем рисунке показана последовательность вызовов модели приложения в обычном приложении Windows Forms Visual Basic. Последовательность начинается с вызова процедурой Sub Main метода Run.

Модель приложения Visual Basic – Запуск

Модель приложения Visual Basic также предоставляет события StartupNextInstance и UnhandledException. На следующем рисунке показан механизм возникновения этих событий.

Модель приложения Visual Basic – Следующий экземплярНеобработанное исключение модели приложения Visual Basic

Переопределение базовых методов

Метод Run определяет порядок выполнения методов Application. По умолчанию процедура для приложения Windows Forms Sub Main вызывает метод Run.

В случае обычного приложения (которое может запускаться в нескольких экземплярах) или первого экземпляра приложения, допускающего запуск только одного экземпляра, метод Run вызывает методы Overridable в следующем порядке:

  1. OnInitialize. По умолчанию этот метод устанавливает стили оформления, стили отображения текста и текущий участник для основного потока приложения (если приложение использует проверку подлинности Windows) и вызывает метод ShowSplashScreen, если в командной строке не указан аргумент /nosplash или -nosplash.

    Последовательность запуска приложения отменяется, если эта функция возвращает False. Это может быть полезно, если существуют ситуации, в которых приложение не следует запускать.

    Метод OnInitialize вызывает следующие методы:

    1. ShowSplashScreen. Определяет, имеет ли приложение заставку и если это так, отображает заставку в отдельном потоке.

      Метод ShowSplashScreen содержит код, отображающий экран-заставку как минимум в течение промежутка времени в миллисекундах, заданного свойством MinimumSplashScreenDisplayTime. Чтобы использовать эту функциональность, необходимо добавить заставку в приложение с помощью Конструктора проектов (который устанавливает значение свойства My.Application.MinimumSplashScreenDisplayTime равным двум секундам) либо задать свойство My.Application.MinimumSplashScreenDisplayTime в методе, который переопределяет метод OnInitialize или OnCreateSplashScreen. Дополнительные сведения см. в разделе MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen. Позволяет конструктору породить код, инициализирующий заставку.

      По умолчанию этот метод не делает ничего. Если выбрать экран-заставку для приложения в конструкторе проектов Visual Basic, конструктор переопределяет метод OnCreateSplashScreen методом, задающим для свойства SplashScreen новый экземпляр формы экрана-заставки.

  2. OnStartup. Предоставляет точку расширения для создания события Startup. Последовательность запуска приложения останавливается, если эта функция возвращает False.

    По умолчанию этот метод создает событие Startup. Если обработчик событий устанавливает свойство Cancel аргумента события равным True, метод возвращает False для отмены запуска приложения.

  3. OnRun. Предоставляет отправную точку для момента, когда основное приложение будет готово к началу запуска после выполнения инициализации.

    По умолчанию, прежде чем этот метод входит в цикл обработки сообщений Windows Forms, он вызывает методы OnCreateMainForm (для создания главной формы приложения) и HideSplashScreen (для закрытия заставки):

    1. OnCreateMainForm. Предоставляет конструктору способ порождения кода, инициализирующего главную форму.

      По умолчанию этот метод не делает ничего. Однако, если выбрать главную форму для приложения в Visual Basic Конструкторе проекта, конструктор переопределит метод OnCreateMainForm с помощью метода, который устанавливает в качестве значения свойства MainForm новый экземпляр главной формы.

    2. HideSplashScreen. Если приложение имеет определенную заставку, и она открыта, этот метод закрывает заставку.

      По умолчанию этот метод закрывает заставку.

  4. OnStartupNextInstance. Предоставляет способ для настройки поведения приложения, допускающего запуск только в одном экземпляре, при запуске другого экземпляра приложения.

    По умолчанию этот метод создает событие StartupNextInstance.

  5. OnShutdown. Предоставляет точку расширения для создания события Shutdown. Этот метод не запускается при возникновении необработанного исключения в главном приложении.

    По умолчанию этот метод создает событие Shutdown.

  6. OnUnhandledException. Выполняется при возникновении необработанного исключения в любом из перечисленных выше методов.

    По умолчанию этот метод создает событие UnhandledException, пока не присоединен отладчик, а приложение обрабатывает событие UnhandledException.

Если приложение допускает запуск только в одном экземпляре, и приложение уже запущено, последующий экземпляр приложения вызывает метод OnStartupNextInstance исходного экземпляра приложения и затем завершает работу.

Конструктор WindowsFormsApplicationBase вызывает свойство UseCompatibleTextRendering для определения того, какой механизм отрисовки текста использовать в формах приложения. По умолчанию свойство UseCompatibleTextRendering возвращает False, показывая, что будет использован механизм отрисовки текста GDI, который используется по умолчанию в Visual Basic 2005. Можно переопределить свойство UseCompatibleTextRendering для возвращения значения True, которое показывает, что для отрисовки текста будет использоваться механизм GDI+, который используется по умолчанию в Visual Basic .NET 2002 и Visual Basic .NET 2003.

Настройка приложения

Как часть модели приложения Visual Basic, класс WindowsFormsApplicationBase предоставляет защищенные свойства для настройки приложения. Эти свойства должны быть установлены в конструкторе реализующего класса.

В проекте Windows Forms по умолчанию Конструктор проекта создает код для задания свойств с параметрами конструктора. Эти свойства используются только при запуске приложения; их задание после запуска приложения не имеет эффекта.

Свойство

Определяет

Значение, устанавливаемое "Конструктором проектов"

IsSingleInstance

Допускает ли приложение запуск только в одном или нескольких экземплярах.

Практическое руководство. Задание поведения приложения при запуске его экземпляров (Visual Basic)

EnableVisualStyles

Будет ли приложение использовать стили оформления XP.

Практическое руководство. Включение визуальных стилей (Visual Basic)

SaveMySettingsOnExit

Сохраняет ли приложение автоматически изменения пользовательских параметров при завершении своей работы.

Выберите флажок Сохранять My.Settings при завершении работы в области Приложение Конструктора проектов.

ShutdownStyle

Что приводит к завершению работы приложения — закрытие главной формы или закрытие всех форм.

Практическое руководство. Задание поведения приложения при завершении работы (Visual Basic)

См. также

Ссылки

ApplicationBase

Startup

StartupNextInstance

UnhandledException

Shutdown

NetworkAvailabilityChanged

WindowsFormsApplicationBase

Основные понятия

Обзор модели приложения в Visual Basic