ЛР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 - приложения;
-
написать и запустить программу, представленную в описательной части;