Элементы управления, как правило, располагаются на форме, образуя иерархическую древовидную структуру. Например, на главном окне могут находиться несколько кнопок и панель, на которой в свою очередь будут расположены несколько чекбоксов и GroupBox, содержащий набор переключателей (RadioButton). Это реализовано при помощи свойства Controls базового класса System.Windows.Forms.Controls, от которого унаследованы все остальные элементы управления. Данное свойство представляет собой коллекцию объектов типа Control и создание иерархической структуры элементов обычно производится повторением следующей последовательности шагов:
· В классе, порожденном от Form, определяется переменная-член нужного элемента UI.
· Настраивается внешний вид и поведение элемента UI.
· Полученный элемент UI добавляется в контейнер ControlCollection нужного родитель с помощью вызова Controls.Add()
События
Реализация функциональности, позволяющая создавать отзывчивые приложения с графическим интерфейсом, основана на использовании событий. Каждый визуальный элемент предоставляет определенный, зачастую довольно большой набор событий, которые позволяют программисту создавать методы, обрабатывающие те или иные изменения состояния элемента. Например:
|
|
class MainWindow: Form
{
// Устанавливаем обработчики событий создания окна и щелчка мышью
public MainWindow()
{
this. Load += new EventHandler(MainWindow_Load);
this. Click += new EventHandler(MainWindow_Click);
}
// Обработчик щелка мышью по окну
void MainWindow_Click(object sender, EventArgs e)
{
this. Text = "Click detected!";
}
// Обработчик создания окна
private void MainWindow_Load(object sender, EventArgs e)
{
this. Text = "Main Window!";
}
}
37. Техника визуальной разработки приложений в WinForms+C#.
Библиотека WPF. Отличия WPF от WindowsForms. Разметка XAML.
Понятие Windows Presentation Foundation
Хотя с помощью Windows Forms было успешно разработано множество полноценных настольных приложений, следует признать, что его программная модель довольно ассиметрична. Просто говоря, сборки System.Windows.Forms.dll и System.Drawing.dll не обеспечивают прямой поддержки многих дополнительных технологий для построения некоторых типов приложений: