 
        
        ЛР5.Введение в программирование под Windows
.docВведение в программирование под Windows
Программирование под Windows связано с применением классов библиотек .NET, которые поддерживают стандартный графический интерфейс пользователя.
В основу Windows положен принцип событийного управления, т.е. система и приложения после запуска ожидают действие пользователя и реагируют на них заранее заданным образом. Структура программ, управляемых событиями представлена на рисунке 1.
 
Рис. 1. Структура программ, управляемых событиями.
Среда Visual Studio.NET содержит удобные средства разработки Windows-приложений – создание шаблонов приложений и форм, заголовок обработчиков событий, организацию цикла обработки сообщений и т.п.
Шаблон Windows – приложения.
Создадим новый проект (File – New – Project), выбрав шаблон Windows Forms Application (Windows Application), как показано на рис.2, среда сформирует шаблон Windows – приложения (рис.3). Кроме того, среда создает не только заготовку приложения, но и шаблон текста приложения. Перейти к нему можно нажав правой клавишей мыши на записи Form1.cs окна Solution Explorer (View – Solution Explorer) и выбрав команду View Code.

Рис. 2. Выбор шаблона проекта.

Рис. 3. Шаблон Windows – приложения.
Листинг.1 Шаблон Windows-приложения.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
Пространство System.Windows.Forms содержит большое количество типов, являющихся строительными блоками Windows-приложений. Список наиболее употребляемых приведен ниже.
Таблица 1. Основные типы Windows.Forms
| Класс | Назначение | 
| Application | Класс Windows-приложения. Обрабатывает Windows – сообщения, запускает и прекращает работу приложения и т.п. | 
| ButtonBase, Button, CheckBox, ComboBox, DataGrid, GroupBox, ListBox, LinkLabel, PictureBox | Элементы управления. Базовый класс кнопок, кнопка, флажок, комбинированный список, таблица, группа, список, метка с гиперссылкой, изображение. | 
| Form | Класс формы – окно Windows – приложения | 
| ColorDialog, FileDialog, FontDialog, PrintPreviewDialog | Стандартные диалоговые окна. Выбор цвета, файлов, шрифтов, окно предварительного просмотра. | 
| Menu, MainMenu, MenuItem, ContextMenu | Классы выпадающих и контекстных меню. | 
| ClipBoard, Help, Timer, Screen, ToolTip, Cursor | Вспомогательные типы для организации графических интерфейсов: буфер обмена, помощь, таймер, экран, подсказка, указатели мыши. | 
| StatusBar, Splitter, ToolBar, ScrollBar | Дополнительные элементы управления, размещаемых на форме: строка состояния, разделитель, панель управления и линейка прокрутки и т.п. | 
Процесс создания Windows – приложения состоит из двух основных этапов:
- 
Визуальное проектирование (задание внешнего облика приложения). 
- 
Определение поведения приложения путем написания процедур обработки событий. 
Визуальное проектирование заключается в помещении на форму элементов управления и задании их свойств и свойств самой формы с помощью окна свойств. Данная оснастка запустится с помощью пункта меню View Properties Window.
Размещение компонентов на форме производится с помощью двойного щелчка на соответствующем значке палитры компонентов Toolbox (если ее не видно, можно запустить командой меню View – Toolbox), при этом компонент помещается на форму. Можно так же сделать один щелчок мишки на иконке палитры и один щелчок на форме приложения. Пример формы показан на рисунке 5.

Рис. 4. Окно свойств.

Рис. 5. Форма с размещенными на ней компонентами.
Определение поведения программы начинается с принятия решений, какое действие должно выполнять приложение при щелчке на кнопках, вводе текста, выборе пунктов меню и т.д.
Для каждого класса определен свой набор событий, на которые он должен реагировать. Наиболее часто употребляемые события:
- 
Activated – получение формой фокуса ввода; 
- 
Click, DoubleClick – одинарный и двойной щелчок мышью; 
- 
Closed – закрытие формы; 
- 
Load – загрузка формы; 
- 
KeyDown, KeyUp – нажатие и отпускание любой клавиши и их комбинации; 
- 
KeyPress – нажатие клавиши, имеющей ASCII-код; 
- 
MouseDown, MouseUp – нажатие и отпускание кнопки мыши; 
- 
MouseMove – перемещение мыши; 
- 
Paint – возникает при необходимости перерисовки формы. 
Для примера создадим Windows-приложение. Приложение должно содержать меню «Dialog», «Exit», метку, кнопку вызова диалогового окна. В метке главного окна должна обновляться информация, введенная в текстовое поле диалогового окна.
Итак, создав новый проект, разместим на форме элементы управления меню, метку и кнопку с помощью палитры Toolbox, как было описано ранее.
Для создания меню выбираем тип MenuStrip и размещаем на форме. Свойству Text первого объекта ToolStripMenuItem присваиваем значение «Dialog», второго «Exit». При выборе мену «Dialog» должно вызываться диалоговое окно Form2. При выборе «Exit» - приложение прекращает свою работу.
Так же создаем объект label1 и свойству Text (окно Properties) присваиваем значение «Text». Создаем элемент управления Button1 со свойством Text= «Dialog». При нажатии кнопки «Dialog» должна запускаться диалоговая форма «Form2». В метке должна отображаться информация из текстового окна диалога.

Рис. 6. Главное окно приложения.
Для создания формы «Form2» для диалогового окна воспользуемся командой меню Project - Add Windows Form. На полученной форме разместим элементы управления TextBox и две командные кнопки Button. Свойство Text кнопок установим в значения «OK» и «Cancel» соответственно.
Кроме того, диалоговые окна характеризуются:
- 
неизменяемыми параметрами (FormBorderStyle=FixedDialog); 
- 
отсутствием восстановления и свертывания в правом верхнем углу заголовка формы (свойства MaximizeBox=False, MinimizeBox=False); 
- 
наличием кнопок наподобие ОК подтверждающую ввод информации и Cancel отменяющую; 
- 
установление значений свойства DialogResult для кнопок. 
Установим все перечисленные свойства на нашей диалоговой форме и элемнтах управления.
Для того чтобы приложение было завершено при выборе меню «Exit», необходимо в метод, который запускается по событию «Click», прописать команду Close(). Для этого двойным щелчком мыши в режиме редактирования формы по данному пункту меню вызываем редактор метода и пишем соответствующую команду.
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
Close();
}

Рис. 7. Диалоговое окно.
Для вызова диалоговой формы в соответствующий метод пункта меню «Dialog» пишем программу, показанную ниж:
private void dialogToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 formDialog = new Form2();
if (formDialog.ShowDialog() == DialogResult.OK) label1.Text = formDialog.Info;
}
Как видно из примера диалоговое окно должно иметь свойство Info. Создадим его, перейдя по двойному щелчку мыши в поле редактора программы, как показано ниже в листинге. (public string Info).
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public string Info
{
get
{
return textBox1.Text;
}
}
private void Form2_Load(object sender, EventArgs e)
{
}
}
}
Аналогично сделаем вызов диалогового окна при нажатии кнопки «Dialog»
private void button1_Click(object sender, EventArgs e)
{
Form2 formDialog = new Form2();
if (formDialog.ShowDialog() == DialogResult.OK) label1.Text = formDialog.Info;
}
При нажатии на клавишу F5 вновь созданное Windows – приложение запустится. При выборе пункта меню «Dialog» или нажав на кнопку «Dialog» вызываем диалоговое окно «Form2». Введя в текстовое поле диалогового окна информацию, и нажав на кнопку ОК, происходит обновление текстовой метки в главном окне. При выборе пункта меню «Exit» наше приложение закроется.
Лабораторная работа №5. Создание Windows – приложения.
Цель работы – дать студенту навыки создания Windows - приложений на примере работы с диалоговыми окнами. Для этого предлагается:
- 
создать проект Windows - приложения; 
- 
написать и запустить программу, представленную в описательной части; 
