Возможности класса Application
Возможности класса Application
Для иллюстраций некоторых функциональных возможностей класса Application давайте расширим тип MainWindow, чтобы он мог выполнять следующее.
• Использовать значения некоторых атрибутов уровня компоновочного блока.
• Обрабатывать статическое событие ApplicationExit…
Первой нашей задачей является использование свойств класса Application для отображения атрибутов уровня компоновочного блока. Для начала добавьте в свой файл MainWindow.cs следующие атрибуты (обратите внимание на то, что здесь используется пространство имен System.Reflection).
using System;
using System.Windows.Forms;
using System.Reflection;
// Несколько атрибутов для данного компоновочного блока.
[аssembly:AssemblyCompany("Intertech Training")] [assembly: AssemblyProduct("Более совершенное окно")"] [assembly:AssemblyVersion("1.1.0.0")]
namespace MyWindowsApp {
…
}
Вместо того чтобы отображать атрибуты [AssemblyCompany] и [AssemblyProduct] вручную, используя приемы, предлагавшиеся в главе 12, класс Application позволяет сделать это автоматически, используя различные статические свойства. Например, можно реализовать конструктор следующего вида, который будет играть роль конструктора, заданного по умолчанию.
public class MainWindow: Form {
publiс MainWindow() {
MessageBox.Show(Application.ProductName, String.Format("Это приложение создано для вас компанией {0}", Application.CompanyName));
}
}
Выполнив это приложение, вы увидите окно сообщения, отображающее соответствующую информацию (рис. 19.2).
Рис 19.2. Чтение атрибутов с помощью типа Application
Теперь позволим форме отвечать на событие ApplicationExit. Вам, наверное, будет приятно узнать, что для обработки событий в рамках графического интерфейса приложений Windows Forms используется синтаксис событий, уже подробно описанный выше в главе 8. Поэтому, чтобы выполнить перехват статического события ApplicationExit, просто зарегистрируйте обработчик события с помощью операции +=.
public class MainForm: Form {
public MainForm() {
// Перехват события ApplicationExit.
Application.ApplicationExit += new EventHandler(MainWindow_OnExit);
}
private void MainWindow_OnExit(object sender, EventArgs evArgs) {
MessageBox.Show(string.Format("Форма версии {0} завершила работу.", Application.ProductVersion));
}
}