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

Можно добавить функциональность в модель приложения путем переопределения Overridable членами WindowsFormsApplicationBase класса.You can add functionality to the application model by overriding the Overridable members of the WindowsFormsApplicationBase class. Этот метод позволяет настроить поведение модели приложения и добавить вызовы собственных методов, как приложение запускается и завершает работу.This technique allows you to customize the behavior of the application model and add calls to your own methods as the application starts up and shuts down.

Визуальный Обзор модели приложенияVisual Overview of the Application Model

В этом разделе наглядно представлена последовательность вызовов функций в модели приложения Visual Basic.This section visually presents the sequence of function calls in the Visual Basic Application Model. В следующем разделе описывается назначение каждой функции подробно.The next section describes the purpose of each function in detail.

На следующем рисунке показан последовательность вызовов модели приложения в обычных приложениях Windows Forms Visual Basic.The following graphic shows the application model call sequence in a normal Visual Basic Windows Forms application. Последовательность начинается, когда Sub Main вызовы процедур Run метод.The sequence starts when the Sub Main procedure calls the Run method.

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

Модель приложения Visual Basic также предоставляет StartupNextInstance и UnhandledException события.The Visual Basic Application Model also provides the StartupNextInstance and UnhandledException events. На следующем рисунке показаны механизм для создания этих событий.The following graphics show the mechanism for raising these events.

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

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

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

Run Метод определяет порядок, в котором Application выполнения методов.The Run method defines the order in which the Application methods run. По умолчанию Sub Main вызывает процедуру для приложения Windows Forms Run метод.By default, the Sub Main procedure for a Windows Forms application calls the Run method.

Если приложение является обычного приложения (несколько экземпляров приложения), или первый экземпляр приложения одного экземпляра, Run выполняет метод Overridable методы в следующем порядке:If the application is a normal application (multiple-instance application), or the first instance of a single-instance application, the Run method executes the Overridable methods in the following order:

  1. OnInitialize.OnInitialize. По умолчанию этот метод задает визуальные стили, стили отображения текста и текущего участника для основного потока приложения (если приложение использует проверку подлинности Windows) и вызывает метод ShowSplashScreen Если ни один из /nosplash , ни -nosplash используется в качестве аргумент командной строки.By default, this method sets the visual styles, text display styles, and current principal for the main application thread (if the application uses Windows authentication), and calls ShowSplashScreen if neither /nosplash nor -nosplash is used as a command-line argument.

    Последовательность запуска приложения отменяется, если эта функция возвращает False.The application startup sequence is canceled if this function returns False. Это может быть полезно в том случае, если существуют ситуации, в которых приложение не запускается.This can be useful if there are circumstances in which the application should not run.

    OnInitialize Метод вызывает следующие методы:The OnInitialize method calls the following methods:

    1. ShowSplashScreen.ShowSplashScreen. Определяет, имеет ли приложение заставку и если да, отображает на экране-заставке в отдельном потоке.Determines if the application has a splash screen defined and if it does, displays the splash screen on a separate thread.

      ShowSplashScreen Метод содержит код, отображающий заставка экрана для по крайней мере число миллисекунд, определенных в MinimumSplashScreenDisplayTime свойство.The ShowSplashScreen method contains the code that displays the splash screen for at least the number of milliseconds specified by the MinimumSplashScreenDisplayTime property. Чтобы использовать эту функцию, необходимо добавить экран-заставка для приложения с помощью конструктор проектов (какие наборы My.Application.MinimumSplashScreenDisplayTime свойства две секунды), или задать My.Application.MinimumSplashScreenDisplayTime свойство в методе, который переопределяет OnInitialize или OnCreateSplashScreen метод.To use this functionality, you must add the splash screen to your application using the Project Designer (which sets the My.Application.MinimumSplashScreenDisplayTime property to two seconds), or set the My.Application.MinimumSplashScreenDisplayTime property in a method that overrides the OnInitialize or OnCreateSplashScreen method. Дополнительные сведения см. в разделе MinimumSplashScreenDisplayTime.For more information, see MinimumSplashScreenDisplayTime.

    2. OnCreateSplashScreen.OnCreateSplashScreen. Позволяет разработчику создавать код, инициализирующий экран-заставка.Allows a designer to emit code that initializes the splash screen.

      По умолчанию этот метод не выполняет никаких действий.By default, this method does nothing. Если выбран экран-заставку для приложения в Visual Basic конструктор проектов, конструктор переопределяет OnCreateSplashScreen метод с методом, который задает SplashScreen свойства новый экземпляр формы экрана заставки .If you select a splash screen for your application in the Visual Basic Project Designer, the designer overrides the OnCreateSplashScreen method with a method that sets the SplashScreen property to a new instance of the splash-screen form.

  2. OnStartup.OnStartup. Предоставляет точку расширения для вызова Startup событий.Provides an extensibility point for raising the Startup event. Последовательность запуска приложения останавливается, если эта функция возвращает False.The application startup sequence stops if this function returns False.

    По умолчанию этот метод вызывает Startup событий.By default, this method raises the Startup event. Если обработчик событий задает Cancel свойства аргумента события для True, метод возвращает False отменить запуск приложения.If the event handler sets the Cancel property of the event argument to True, the method returns False to cancel the application startup.

  3. OnRun.OnRun. Предоставляет отправную точку для момента, когда основное приложение будет готово к началу запуска после выполнения инициализации.Provides the starting point for when the main application is ready to start running, after the initialization is done.

    По умолчанию, прежде чем он входит в цикл обработки сообщений Windows Forms, этот метод вызывает OnCreateMainForm (для создания главной формы приложения) и HideSplashScreen (чтобы закрыть экран-заставка) методы:By default, before it enters the Windows Forms message loop, this method calls the OnCreateMainForm (to create the application's main form) and HideSplashScreen (to close the splash screen) methods:

    1. OnCreateMainForm.OnCreateMainForm. Позволяет разработчику создавать код инициализации главной формы.Provides a way for a designer to emit code that initializes the main form.

      По умолчанию этот метод не выполняет никаких действий.By default, this method does nothing. Тем не менее, при выборе главной формы приложения в Visual Basic конструктор проектов, конструктор переопределяет OnCreateMainForm метод с методом, который задает MainForm свойства новый экземпляр главной формы.However, when you select a main form for your application in the Visual Basic Project Designer, the designer overrides the OnCreateMainForm method with a method that sets the MainForm property to a new instance of the main form.

    2. HideSplashScreen.HideSplashScreen. Если приложение имеет определенную заставку, и он открыт, этот метод закрывает экран-заставка.If application has a splash screen defined and it is open, this method closes the splash screen.

      По умолчанию этот метод закрывает экран-заставка.By default, this method closes the splash screen.

  4. OnStartupNextInstance.OnStartupNextInstance. Предоставляет способ настраивать поведение приложения при запуске другого экземпляра приложения.Provides a way to customize how a single-instance application behaves when another instance of the application starts.

    По умолчанию этот метод вызывает StartupNextInstance событий.By default, this method raises the StartupNextInstance event.

  5. OnShutdown.OnShutdown. Предоставляет точку расширения для вызова Shutdown событий.Provides an extensibility point for raising the Shutdown event. Этот метод не выполняется при возникновении необработанного исключения в главном приложении.This method does not run if an unhandled exception occurs in the main application.

    По умолчанию этот метод вызывает Shutdown событий.By default, this method raises the Shutdown event.

  6. OnUnhandledException.OnUnhandledException. Выполняется при возникновении необработанного исключения в любом из перечисленных выше методов.Executed if an unhandled exception occurs in any of the above listed methods.

    По умолчанию этот метод вызывает UnhandledException , пока не присоединен отладчик и приложение обрабатывает событие UnhandledException событий.By default, this method raises the UnhandledException event as long as a debugger is not attached and the application is handling the UnhandledException event.

Если приложение является приложением одним экземпляром, и приложение уже выполняется, последующий экземпляр приложения вызывает OnStartupNextInstance метод на исходный экземпляр приложения, а затем завершает работу.If the application is a single-instance application, and the application is already running, the subsequent instance of the application calls the OnStartupNextInstance method on the original instance of the application, and then exits.

OnStartupNextInstance(StartupNextInstanceEventArgs) Конструктор вызывает UseCompatibleTextRendering свойство, чтобы определить, какой механизм отрисовки текста для форм приложения.The OnStartupNextInstance(StartupNextInstanceEventArgs) constructor calls the UseCompatibleTextRendering property to determine which text rendering engine to use for the application's forms. По умолчанию UseCompatibleTextRendering возвращает False, указывающее, что использовать механизм отрисовки текста GDI, используется по умолчанию в Visual Basic 2005 и более поздних версий.By default, the UseCompatibleTextRendering property returns False, indicating that the GDI text rendering engine be used, which is the default in Visual Basic 2005 and later versions. Можно переопределить UseCompatibleTextRendering возвращаемое свойство True, который указывает, что использовать механизм отрисовки текста GDI +, который используется по умолчанию в Visual Basic .NET 2002 и Visual Basic .NET 2003.You can override the UseCompatibleTextRendering property to return True, which indicates that the GDI+ text rendering engine be used, which is the default in Visual Basic .NET 2002 and Visual Basic .NET 2003.

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

Как часть модели приложения Visual Basic WindowsFormsApplicationBase класс предоставляет защищенные свойства для настройки приложения.As a part of the Visual Basic Application model, the WindowsFormsApplicationBase class provides protected properties that configure the application. Эти свойства должны быть установлены в конструкторе реализующего класса.These properties should be set in the constructor of the implementing class.

В проекте Windows Forms по умолчанию конструктор проектов создает код для задания свойств с параметрами конструктора.In a default Windows Forms project, the Project Designer creates code to set the properties with the designer settings. Свойства используются только в том случае, при запуске приложения; Задание их после запуска приложения не влияет.The properties are used only when the application is starting; setting them after the application starts has no effect.

СвойствоProperty ОпределяетDetermines Параметр в области "приложение" в конструкторе проектовSetting in the Application pane of the Project Designer
IsSingleInstance Выполняется ли приложение в одном или нескольких экземпляров приложения.Whether the application runs as a single-instance or multiple-instance application. Создать приложение одного экземпляра "флажок"Make single instance application check box
EnableVisualStyles Если приложение будет использовать визуальные стили, которые соответствуют Windows XP.If the application will use visual styles that match Windows XP. Включить визуальные стили XP "флажок"Enable XP visual styles check box
SaveMySettingsOnExit Если приложение автоматически сохраняет изменения пользовательских параметров приложения при выходе приложения.If application automatically saves application's user-settings changes when the application exits. Сохранять My.Settings при завершении работы "флажок"Save My.Settings on Shutdown check box
ShutdownStyle Что вызывает завершение работы, например когда закрывается начальная форма или при закрытии последней формы приложения.What causes the application to terminate, such as when the startup form closes or when the last form closes. Режим завершения работы спискаShutdown mode list

См. такжеSee also