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


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

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

Визуальный обзор модели приложения

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

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

Схема, показывающая последовательность вызовов модели приложений.

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

Схема, показывающая метод OnStartupNextInstance, вызывающий событие StartupNextInstance.

Схема, показывающая метод OnUnhandledException, вызывающий событие UnhandledException.

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

Метод Run определяет порядок Application выполнения методов. По умолчанию процедура Sub Main для приложения Windows Forms вызывает метод 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 метод в исходном экземпляре приложения, а затем завершает работу.

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

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

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

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

Недвижимость Определяет Настройка в панели приложения конструктора проектов
IsSingleInstance Выполняется ли приложение в качестве одного экземпляра или приложения с несколькими экземплярами. Установите флажок "Создать одноэкземплярное приложение"
EnableVisualStyles Если приложение будет использовать визуальные стили, соответствующие Windows XP. Флажок "Включить стили визуальных элементов XP"
SaveMySettingsOnExit Если приложение автоматически сохраняет параметры пользователя приложения при выходе из приложения. Установите флажок "Сохранить My.Settings при завершении работы"
ShutdownStyle Что приводит к прекращению работы приложения, например при закрытии формы запуска или закрытии последней формы. Список режимов завершения работы

См. также