Форма
Форма — это класс. Форма предназначена для реализации интерфейса пользователя приложения. Содержит большой набор свойств, методов, событий для реализации различных вариантов пользовательского интерфейса. Является окном и наследует классу 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());
В принципе, эта строчка и отвечает за создание, "запуск" в потоке приложения и возможное появление на экране дисплея формы.