Высокоуровневые методы информатики и программирования Лекция 20 Пространство имен System.Windows.Forms.

Презентация:



Advertisements
Похожие презентации
Высокоуровневые методы информатики и программирования Лекция 19 Графический интерфейс пользователей.
Advertisements

ВВЕДЕНИЕ В WINFORMS Лекция 1. Устройство Windows-приложения Оконнная функция Окно Цикл обработки сообщений OS Windows Программа создает окно и присоединяет.
Windows forms. Объявление события public delegate void SampleEventDelegate(object Sender, string e); public event SampleEventDelegate SampleEvent; public.
Объявление события public delegate void SampleEventDelegate(object Sender, string e); public event SampleEventDelegate SampleEvent; public void CallEvent(string.
Высокоуровневые методы информатики и программирования Лекция 10 События.
Click to edit Master title style IDK1011 Основы программирования События и их обработка.
Общие сведения Так как среда программирования Visual Basic выполняется на компьютере вместе с операционной средой Windows, то создавать мы будем программы,
©Павловская Т.А. (СПбГУ ИТМО) Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Высокоуровневые методы информатики и программирования Лекция 23 Графический интерфейс форм.
Виды проектов Visual Studio.Net 2012 предлагает различные шаблоны для ваших начальных проектов. Основные поддерживаемые языки программирования: С#, C++,
Высокоуровневые методы информатики и программирования Лекция 9 Делегаты.
©Павловская Т.А. (СПбГУ ИТМО) 1 Расчет рейтинга по модулю 4 вид учебной нагрузки баллы minmax Выполнение и защита лаб. раб. (2 штуки) 6 * 2 шт10 * 2 шт.
Диалоги ShowDialogСоздает модальный диалог. После вызова ShowDialog следующий оператор не выполняется пока не произойдет выход из метода. Пока не закрыт.
Литература 1.Троелсен Э. Язык программирования С# 2005 и платформа.NET Изд. Вильямс, Мак-Дональд М. WPF: Windows Presentation Foundation.
Высокоуровневые методы информатики и программирования Лекция 22 Работа с внешними устройствами.
ФИЛОСОФИЯ.NET Любому современному программисту, который желает идти в ногу с последними веяниями, каждые несколько лет приходится переучиваться.
Графический интерфейс и событийные процедуры.. Графический интерфейс. Графический интерфейс необходим для реализации интерактивного диалога пользователя.
Классы Windows Presentation Foundation - 1 System.ObjectDispatcherOjectApplicationDependencyObjectVisualUIElementFrameworkElementControlContentControlWindowButtonBaseButtonToggleButtonCheckBoxRadioButtonItemsControlSelectorListBoxListViewComboBoxTabContro
Слезко Полина Сергеевна Учитель информатики Белоярской СОШ Томской области.
Презентация Delphi
Транксрипт:

Высокоуровневые методы информатики и программирования Лекция 20 Пространство имен System.Windows.Forms

Технологии разработки GUI Набор классов пространства System.Windows.Forms Windows Presentation Foundation (WPF)

Работа с окнами и сообщениями с использованием System.Windows.Forms На платформе.Net для работы с этой библиотекой Win32 API программист должен использовать классы пространства имен System.Windows.Forms Для рисования в окне используются классы пространства имен System.Drawing

Библиотека FCL (Framework Class Library) System System.DataSystem.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Design ADO SQLTypes SQL XPath XSLT Runtime InteropServices Remoting Serialization ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.Windows.Forms FormComponentModel

Основные классы пространства имен System.Windows.Forms КлассПояснение Controlбазовый класс для окон и элементов упр. Formосновное окно Windows (контейнер для элементов управления) Applicationстатический класс приложения Menuкласс меню MainStripосновное меню ContextMenuStrip контекстное меню MessageBoxстатический класс окон сообщений Timerработа с таймером ClipBoardработа с буфером обмена

Класс System.Windows.Forms.Application Статический класс для управления всем приложением в целом –Запуск цикла обработки сообщений ОС –Завершение работы –Получение информации о приложении –События о простое приложения о завершении работы Методы: –Application.Run(ссылка на форму) –Exit() События: –ApplicationExit –Idle

Элементы управления - Control Специальный класс, включающий окно OC Windows в качестве поля. Элементы данного класса могут: –Показывать (рисовать) в заданном месте формы. –Обрабатывать сообщения ОС Windows переданные данному окну и формировать события класса о действиях пользователя –Работать в двух режимах Design mode – в режиме визуального проектирования интерфейса пользователя –Рисовать себя на форме –Задавать значения свойств в системе программирования Run-Time mode – при работе программы –Менять картинку в зависимости от действий пользователя

Элемент управления Класс, объекты которого имеют визуальное представление в виде окна ОС Windows Класс Control реализует самую базовую функциональность, требуемую всем классам, которые показывают информацию пользователям. Он обрабатывает действия пользователя с клавиатурой и указывающими устройствами (pointing devices, мышь, джойстик, …) Windows Forms controls Использует окружающие свойства (ambient properties). Это такие свойства, которые если не установлены, то они запрашиваются у родительского элемента управления.

void Show () { ::Show (hwnd, SC_MIN)} Базовый класс Control - элемент управления (окно) включает в качестве поля номер окна hwnd используя hwnd и WinAPI может управлять своим окном получает и обрабатывает события от ОС Windows формирует новые события для классов пользователей – клиентов поддерживает два режима работы: –Design mode –Run-time mode Class A : Control long hwnd = 1024; // обработчики событий hwnd = 1024;

Основной класс операционной системы window Создает и работает с окнами - ОС Каждое окно имеет номер – handle of window (hwnd) с каждым окном связан обработчик событий – оконная процедура (wndProc)

Некоторые базовые свойства класса System.Windows.Forms.Control Handle – номер окна Windows BackColor, ForeColor – фоновый цвет и цвет рисования Left, Top, Right, Bottom – координаты точек диагонали Height, Width – высота и ширина Size – размер окна ContextMenu – ссылка на контекстное меню Cursor - ссылка на курсор Name – имя элемента для работы системы разработки Parent – ссылка на родительское окно Text – заголовок Font – используемый шрифт Controls – список других элементов управления (если контейнер) TabIndex – порядок перехода при нажатии клавиши Tab Focused – имеет ли окно фокус ввода (get). Anchor – связывание со сторонами родительской формы. Dock – присоединение к сторонам родительской формы.

Некоторые методы базового класса System.Windows.Forms.Control Show() – показать окно на экране; Hide() - спрятать окно (убрать с экрана); OnEvent() – обработать заданное событие; CreateGrafics() – создать элемент класса Grafics для рисования в окне; Update() – обновить содержание окна; Invalidate() – объявить содержание окна неправильным, что заставляет ОС отправить событие WM_PAINT о необходимости перерисовки содержания окна.

Основные события классов элементов Общие события –Paint –GetFocuse –LostFocuse Работа с мышкой –Click, –MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove MouseUp, MouseWheel Работа с клавиатурой –KeyDown, –KeyUp, –KeyPress

Обработка событий Для обработки событий нужно иметь –Делегата, который описывает метод, обрабатывающий событие. –Класс, который содержит событие.

Сигнатура обработчика событий Все события классов FCL имею одинаковую сигнатуру (состав параметров) Состав параметров –Ссылка на объект, сгенерировавший событие Object –Объект содержащий параметры события EventArgs (или производный от него) public EventHandler (Object sender, System.EventArgs e)

Делегат EventHandler Описывает метод, который будет обрабатывать события, не имеющие специальных данных об этом событии public delegate void EventHandler ( Object sender, EventArgs e ) ;voidObjectEventArgs EventArgs – базовый класс (пустой) для классов, которые содержат данные, описывающие произошедшее событие. Для передачи данных, описывающих событие нужно создать производный класс от класса System.EventArgs.

Класс основного окна программы System.Windows.Forms.Form

Класс System.Windows.Forms.Form Форма (Form) это специальный класс, который позволяет пользователю создавать и показывать окно OC Windows. Это окно может быть: –Основным окном программы; –Диалоговыми окнами программы. Для работы с окнами необходимо создать и показать объект класса Form Класс Form имеет множество свойств, методов, событий.

Наследственность класса Form Control ScrollableControl ContainerControl Form Object... Самый базовый класс Базовый класс для элементов управления Контейнер для других элементов управления

Структура производной формы Класс Form Text Width Height Controls Menu Производный от формы класс MyMenu MyButton MyTextBox OnPaint OnMouseDown OnKeyDown Новые методы и свойства События подключаются: 1.event += new (delegate) 2.Используя перегружаемые функции базового класса...

Жизненный цикл объектов класса Form Жизненный цикл элемента –Load –Activated –Deactivated –Close Дополнительные события

Класс System.Windows.Forms.Application Статический класс для управления всем приложением в целом –Запуск цикла обработки сообщений ОС –Завершение работы –Получение информации о приложении –События о простое приложения о завершении работы Метод передачи сообщений из очереди в объект класса Form Application.Run (ссылка на форму);

Структура программы с GUI интерфейсом Class Application Form frm; Class XXX { static void Main () { Form frm = new Form(); Application.Run (frm); } Очередь сообщений Class MyForm : Form long hwnd = 2048; // обработчики событий void Run (f) { … }

Последовательность создания программы с GUI Создать класс производный от класса Form. Задать в качестве полей класса ссылки на элементы управления, которые будут показаны на форме. В конструкторе класса, создать экземпляры элементов управления и установить их свойства. Добавить элементы управления к коллекции Controls класса Form. Добавить обработчики событий формы или элементов управления, на которые должна реагировать программа с сигнатурой. void EventHandler (object o, EventArgs ea) Связать обработчики с событиями элементов управления или формы. Написать класс, который содержит статический метод Main: static public void Main() В этом методе создать экземпляр описанного производного от Form класса. Запустить цикл обработки событий OC Windows (указать ссылку на объект производный от Form).

Пример создания программы с GUI class MyForm : Form { Button btn; public MyForm( ) { this.Text = "Sample Windows Program"; this.Cursor = Cursors.Cross; btn = new Button(); btn.Text = "Click me!"; btn.Top = 100; btn.Left = 100; this.Paint += new EventHandler (OnPaint); this.Controls.Add(btn); } protected override void Paint(PaintEventArgs pea) { Graphics grfx = pea.Graphics; grfx.DrawString("Привет!", Font, Brushes.Black, 0, 0); } class Program { static void Main(string[] args) { MyForm frm = new MyForm(); Application.Run(frm); }

Вызов компилятора csc.exe progr.cs /reference:System.Drawing.dll,System.Windows.Forms.dll /target:winexe /out:myprg.exe По умолчанию –mscorlib.dll –Microsoft.VisualBasic.dll /reference: /target: –exe – консольное приложение –winexe – GUI приложение –library – библиотека классов (dll) –module – управляемый модуль /out: