Форма
Форма — это класс. Форма предназначена для реализации интерфейса пользователя приложения. Содержит большой набор свойств, методов, событий для реализации различных вариантов пользовательского интерфейса. Является окном и наследует классу Control.
Объект-представитель класса Form — это окно, которое появляется в Windows- приложении. Это означает, что объект-представитель класса Form поддерживает механизмы управления, реализованные на основе обмена сообщениями Windows. Структура сообщений и стандартные механизмы управления здесь не рассматриваются. Достаточно знать, что класс формы содержит объявление множества событий, для которых на основе стандартного интерфейса (сигнатуры) могут быть подключены и реализованы функции обработки событий.
Этот класс можно использовать как основу для создания различных вариантов окошек:
- стандартных;
- инструментальных;
- всплывающих;
- borderless;
- диалоговых.
- Создается "окно", а класс называется формой – поскольку в окне приложения можно разместить элементы управления, обеспечивающие интерактивное взаимодействие приложения и пользователя (заполните форму, please).
Известна особая категория форм – формы MDI – формы с многодокументным интерфейсом (the multiple document interface).
Эти формы могут содержать другие формы, которые в этом случае называются MDI child forms. MDI-форма создается после установки в true свойства IsMdiContainer.
Используя доступные в классе Формы свойства, можно определять внешний вид, размер, цвет и особенности управления создаваемого диалога:
- свойство Text позволяет специфицировать надпись в заголовке окна приложения;
- свойства Size и DesktopLocation позволяют определять размеры и положение окна в момент его появления на экране монитора;
- свойство ForeColor позволяет изменить предопределенный foreground цвет всех расположенных на форме элементов управления;
- свойства FormBorderStyle, MinimizeBox и MaximizeBox позволяют изменять размеры окна приложения во время его выполнения.
Методы класса обеспечивают управление формой:
- например, метод ShowDialog обеспечивает представление формы как модального диалога;
- метод Show показывает форму как немодальный диалог;
- метод SetDesktopLocation используется для позиционирования формы на поверхности Рабочего стола.
Форма может использоваться как стартовый класс приложения. При этом класс формы должен содержать точку входа – статический метод Main. В теле этого метода обычно размещается код, обеспечивающий создание и формирование внешнего вида формы.
Обычно заготовка формы "пишется" мастером. Пример кода простой заготовки окна прилагается. Форма проста настолько, что после некоторой медитации может быть воспроизведена вручную:
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; namespace FormByWizard { // Summary description for Form1. public class Form1 : System.Windows.Forms.Form { // Required designer variable. private System.ComponentModel.Container components = null; public Form1() { // // Required for Windows Form Designer support // InitializeComponent(); // // TODO: Add any constructor code after InitializeComponent call // } // Clean up any resources being used. protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code // Required method for Designer support – do not modify // the contents of this method with the code editor. private void InitializeComponent() { this.components = new System.ComponentModel.Container(); this.Size = new System.Drawing.Size(300,300); this.Text = "Form1"; } #endregion // The main entry Point for the application. static void Main() { Application.Run(new Form1()); } } }Листинг 16.1.
Главная проблема – метод InitializeComponent(). Это зона ответственности мастера приложений. Категорически не рекомендуется в этом методе делать что-либо самостоятельно — во избежание потери всего того, что там может быть построено, поскольку Мастер приложения может изменить содержимое тела метода в соответствии с изменениями внешнего вида приложения.
Важна строчка в теле функции Main
Application.Run(new Form1());
В принципе, эта строчка и отвечает за создание, "запуск" в потоке приложения и возможное появление на экране дисплея формы.