Реферат: Windows Forms: Современная модель программирования для создания GUI приложений
Text = "Windows Forms Demo";
}
protected override void OnPaint (PaintEventArgs e)
{
e.Graphics.DrawString ("Hello, world", Font,
new SolidBrush (Color.Black), ClientRectangle);
}
public static void Main (string[] args)
{
Application.Run (new MyForm ());
}
}
Начнем сначала. Слово "using" вверху файла позволяют сослаться на классы в пакетах System, System.WinForms и System.Drawing. Например,
using System.WinForms;
вы пишите
public class MyForm : System.WinForms.Form
вместо
public class MyForm : Form
В приложении, использующем Windows Forms, каждое окно - или форма - представлено экземпляром класса, производного от System.WinForms.Form (Листинг 1 - класс MyForm). Конструктор MyForm устанавливает текст заголовка формы "Windows Forms Demo" используя свойство Text. Text - одно из более чем 100 свойств, которые форма наследует от System.WinForms.Form, но пока единственное, в котором вы нуждаетесь.
Как вы знаете, окна получают сообщения WM_PAINT и большинство перерисовок экрана выполнено в ответ на эти сообщения. В Windows Forms эквивалент сообщения WM_PAINT - виртуальный метод по имени OnPaint. Производный класс формы может переопределить этот метод в случае надобности выполнять собственную перерисовку в ответ на сообщения WM_PAINT.
Обратите внимание на ключевое слово в Листинге 1, которое компилятор C# интерпретирует как подтверждение, что вы хотите переопределить виртуальный метод, унаследованный от базового класса. Перопределенный OnPaint записывает "Hello, world" в клиентской области формы. OnPaint вызывает объект PaintEventArgs (System.WinForms.PaintEventArgs), который содержит свойства Graphics и ClipRectangle. Свойство Graphics ссылается к объекту Graphics (System.Drawing.Graphics), который является эквивалентом контекста устройства (device context) в Windows Forms. ClipRectangle производное объекта Rectangle (System.Drawing.Rectangle), который описывает какая часть формы является недопустимой.
Метод OnPaint из MyForm использует Graphics.DrawString, чтобы выполнить вывод на экран. Первый параметр DrawString - непосредственно само сообщение (строка) "Hello, world". Второй - объект Font (System.Drawing.Font), который описывает шрифт для вывода текста. MyForm.OnPaint использует шрифт формы (которой установлен в свойстве Font формы). Третий параметр - Brush (System.Drawing.Brush) - объектное определение цвета текста. Четвертый и заключительный параметр - прямоугольник области, куда требуется вписать текст.
Заключительная часть MyForm - статический метод Main. Main - точка входа в приложение. Каждое приложение .NET должно иметь этот метод. Main может быть объявлен любым из следующих способов:
public static void Main ()
public static int Main ()
public static void Main (string[] args)
public static int Main (string[] args)
Параметр args метода Main - строковый массив параметров командной строки (задаваемых при вызове программы). Элемент args[0] хранит первый параметр командной строки, args[1] - второй и т.д. Как правило, в каждом приложении метод Main выполняется только однажды (компилятор Microsoft C# допускает использование ключа /main, указывающего в каком классе содержится метод Main, если приложение имеет несколько классов с методами Main). Main может находиться в любом классе, определенном в приложении.
Отображение нашей формы на экране - простой пример выполнения MyForm и передачи действия Application.Run. Application - другой класс, определенный в System.WinForms. Метод Run создает форму, отображает ее на экране и обрабатывает сообщения к ней. Следующая инструкция в Листинге 1