Пространство имен System.WinForms, класс Form. Добавление форм к проекту. Методы и события формы.
Основой почти каждого приложения, написанного с применением Windows Forms, является производный класс от класса System.WinForms.Form. Образец этого класса представляет главное окно приложения. Класс System.WinForms.Form имеет множество свойств и методов, которые имеют богатый программный интерфейс к формам.
В Windows Forms термин "форма" – синоним окна верхнего уровня. Главное окно приложения – форма. Любые другие окна верхнего уровня, которые имеет приложение, также формы. Окна диалога также считаются формами. Несмотря на название, приложения, использующие Windows Forms, не выглядят как формы. Подобно традиционным приложениям, Windows- приложения осуществляют полный контроль над событиями в собственных окнах.
Windows-приложения имеют различные графические интерфейсы:
1) SDI (Single Document Interface) – однодокументный интерфейс; главная форма функционирует как самостоятельное окно;
2) MDI (Multiple Document Interface) – многодокументный интерфейс; формы могут содержать дочерние формы (свойство родительского окна IsMdiContainer должно быть равно True. Например: this.IsMdiContainer = true; свойство дочернего окна MdiParent должно указывать на родительское окно).
В указанных приложениях широко используются формы-диалоги, т.е. формы, используемые для размещения элементов управления. Диалоговое окно— это набор управляющих элементов, с помощью которых упрощается процесс ввода, выбора данных. Использование диалоговых окон облегчает процесс взаимодействия пользователя с приложением ОС Windows.
В самом классе Forml (например) описано закрытое поле Сomponents — контейнер для хранения компонентов, которые можно добавить в класс формы. Конструктор формы вызывает закрытый метод InitializeComponent, автоматически формируемый средой. Этот метод обновляется средой при добавлении элементов управления на форму, а также при изменении свойств формы и содержащихся на ней элементов. Например, если изменить цвет фона формы с помощью окна Свойств (Properties), в методе появится примерно такая строка:
this.BackColor = System.Drawing.SystemColors.AppWorkspace:
Метод освобождения ресурсов Dispose вызывается автоматически при закрытии формы.
Точка входа в приложение, метод Main, содержит вызов статического метода Run класса Application. Метод Run запускает цикл обработки сообщений и выводит на экран форму, новый экземпляр которой передан ему в качестве параметра
Применение методов формы.Класс Form предоставляет большой набор методов, включая следующие:
ActiveForm() - возвращает активную форму.
Activate() - активизирует указанную форму.
Close() - закрывает форму.
Show() - показывает форму.
ShowDialog() - показывает форму в виде модального диалога (модальность окна требует его обязательного закрытия).
Hide() - скрывает форму.
Применение событий формы.Для формы возможны следующие события:
Activated — получение формой фокуса ввода;
Click, Doubleclick — одинарный и двойной щелчки мышью;
Closed — закрытие формы;
Load — загрузка формы;
KeyDown, KeyUp — нажатие и отпускание любой клавиши и их сочетаний; Keypress — нажатие клавиши, имеющей ASCII-код;
MouseDown, MouseUp — нажатие и отпускание кнопки мыши;
MouseMove — перемещение мыши.
Для создания стандартных диалоговых окон используется класс MessageBox (Окно сообщения). Например,
MessageBox.Show("Нажата кнопка buttonl");
MessageBox.Show("Нажата клавиша " + e.KeyChar);
Здесь используется простейший вариант статического метода Show класса MessageBox, определенного в пространстве имен System.Windows.Forms. Существуют более десяти перегруженных вариантов этого метода, позволяющих варьировать вид выводимой информации, например, задать заголовок окна и наименования отображаемых на нем кнопок.
Более сложные диалоговые окна создаются на основе форм.В теле обработчиков событий программист может самостоятельно написать код, который будет выполняться при наступлении события.
Понятие компонента и компонентной модели. Интерфейс System.ComponentModel.IComponent и класс System.ComponentModel.Component.
Понятие компонента
Компонент(от лат. сomponent - составляющий) – составная часть, элемент чего-либо. В программировании компонент— это "кирпичик" программы, состоящий из свойств (properties), методов(methods) и событий(events). Свойства дают возможность управлять видом и поведением компонента, методы — использовать возможности, предоставляемые компонентом, а события— реагировать на происходящие внутри компонента события,программировать реакцию компонента на внешние события и т. д.
Компонент— это независимый модуль, предназначенный для многократного использования и предоставляемый пользователю в двоичном формате. Это определение описывает четыре ключевых характеристики компонента. Рассмотрим их по очереди.
Компонент определен как независимыймодуль. Это означает, что каждый компонент вполне самодостаточен. Другими словами, компонент обеспечивает полный набор функций. Его внутренняя работа закрыта для "внешнего мира", но при этом реализация может быть изменена без последствий для кода, в котором используется этот компонент.
Компонент предназначен для многократного применения. Это означает, что компонент может использовать любая программа, которой требуются его функции. Программа, которая использует компонент, называется клиентом. Таким образом, компонент может работать с любым количеством клиентов.
Компонент представляет собой отдельный модуль. Это очень важно. С точки зрения клиента компонент выполняет конкретную функцию или набор функций. Функциями компонента, может воспользоваться любое приложение, но сам компонент не является автономной программой.
Наконец, компонент должен быть представлен в двоичном формате. Это принципиально важно. Хотя использовать компонент могут многие клиенты, они не имеют доступа к его исходному коду. Функциональность компонента открыта для клиентов только посредством его public-членов. Другими словами, именно компонент управляет тем, какие функции оставлять открытыми для клиентов, а какие — держать "под замком”.