Высокоуровневые методы информатики и...

53
Высокоуровневые методы информатики и программирования Лекция 21 Элементы управления

Upload: svea

Post on 19-Jan-2016

110 views

Category:

Documents


0 download

DESCRIPTION

Высокоуровневые методы информатики и программирования Лекция 21 Элементы управления. План работы. Базовый класс элементов управления – Control Основные свойства и методы базового класса Основные элементы управления. Элементы управления ( Controls ). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Высокоуровневые методы информатики и

программирования

Лекция 21

Элементы управления

Page 2: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

План работы

• Базовый класс элементов управления – Control

• Основные свойства и методы базового класса

• Основные элементы управления

Page 3: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элементы управления (Controls)

• Классы производные от базового класса System.Windows.Forms.Control.

• Наследуют всю функциональность данного класса.

Page 4: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Типы элементов управления

• Визуальные элементы управления (controls)

• Компоненты (components) – не визуальные элементы управления

Page 5: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Некоторые базовые свойства класса 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 – присоединение к сторонам родительской формы.

Page 6: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Размер окна

• Свойство Size – начальный размер окна.• Свойство FormBorderStyle задает вид

рамки формы:– Sizable – рамка с изменяющимся размером;

при изменении размера возникает событие SizeChanged;

– FixedSingle– Fixed3D– FixedDialog

Page 7: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Свойство Anchor• Задает стороны родительского окна с которыми ЭУ

связан. В этом случае, если родительское окно меняет размеры, то расстояние от ЭУ до заданных сторон родительской формы будет поддерживаться постоянным (неизменным).– Например, если задан ЭУ Button, который привязан к left и

right,

button1.Anchor = (AnchorStyles.Left | AnchorStyles.Right); то при изменении размера формы ЭУ Buton изменяет свои

размеры так, чтобы сохранить расстояние до левой и правой сторон формы.

• Если ЭУ не привязан к сторонам формы и размер формы можно менять, положение ЭУ относительно сторон формы меняется.

Page 8: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Свойство Dock

• Задание присоединения (dock) границ ЭУ к границам родительского ЭУ и определения того, как ЭУ меняет свои размеры при изменений размеров родительского ЭУ.

• Свойства Anchor и Dock являются взаимно исключающими. Только одно может быть задано для ЭУ.

Page 9: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Некоторые основные методы класса System.Windows.Forms.Control

• Show() – показать окно на экране;• Hide() - спрятать окно (убрать с экрана);• OnEvent() – обработать заданное событие;• CreateGrafics() – создать элемент класса

Grafics для рисования в окне;• Update() – обновить содержание окна;• Invalidate() – объявить содержание окна

неправильным, что заставляет ОС отправить событие WM_PAINT о необходимости перерисовки содержания окна.

Page 10: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Группы элементов управления

• Более 50 элементов управления (классов)• Стандартные элементы управления• Компоненты (не визуальные ЭУ)• Элементы управления для работы с меню и

инструментальными полосами• Элементы управления для работы с принтером• Общие диалоги• Элементы управления для работы с базой данных

Page 11: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Использование элементов управления

1. Включить в состав класса Form переменные требуемых типов

2. Создать экземпляры классов элементов управления

3. Задать их начальные свойства4. Создать методы - обработчики событий5. Связать эти методы с события элемента

управления6. Добавить созданные объекты к коллекции

Controls

Page 12: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Иерархия классов – элементов управления

Page 13: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Стандартные элементы управления – Common Controls

• Label (метки)• LinkLabel (метки)• Button (кнопки)• RadioButton (кнопки)• CheckBox (флажки)• CheckedListBox (флажки)• ListBox (флажки)• ListView (списки)• ComboBox (списки)• TextBox (текст)• RichTextBox (текст)• MaskedTextBox (текст)

• NotifyIcon• NumericUpDown• PictureBox (графика)• ProgressBar• ToolTip• TreeView (дерево)• WebBrowser• DateTimePicker• MonthCalendar

Page 14: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Компоненты

• Элементы управления без визуального интерфейса

• Timer• FileSystemWatcher• BackgroundWorker• HelpProvider• ImageList• SerialPort• ServiceController

Page 15: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элементы управления для работы с принтером - Printing

• PrintDialog• PageSetupDialog• PrintDocument• PrintPreviewDialog• PrintPreviewControl

Page 16: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Автоматизация программирования на основе

визуальных действий с элементами управления

Page 17: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Инструменты

• Windows Forms Designer «Конструктор форм Windows» - специальные подсистемы в Visual Studio для работы с инструментами визуальной разработки.

• Набор элементов управления (Toolbox)• Форма – контейнер для размещения

элементов управления• Окно Properties для работы со свойствами

элементов управления в режиме проектирования (design mode)

Page 18: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Окно c набором элементов управления «Tollbox»

• Содержит все элементы управления, которые могут быть размещены на форме

• Все элементы разделены на группы

• Позволяет выбрать нужный элемент управления и перетащить его на форму

Page 19: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Просмотр свойств объекта

• Выделить элемент (должны появиться handles)

• Выделить элемент и выбрать команду Properties в контекстном меню.

Page 20: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Окно свойств «Properties»

• Позволяет выбрать свойство, посмотреть значение и задать новое значение.

Page 21: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

События элемента в окне свойств

• Выбрать событие• Двойной щелчок на имени

события – создание пустого обработчика событий со стандартным именем.

• Задание имени и щелчок - создание пустого обработчика событий со стандартным именем.

• Одинарный щелчок на имени события – переход к обработчику событий.

• Можно сменить имя обработчика события

Page 22: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Работа дизайнеров

• В Visual Studio имеется несколько визуальных проектировщиков форм (visual forms designers)

• Основные операции:– «Перетащить и уронить» (“drag-and-drop”) на форме элемент управления– Перемещение элементов управления на форме (перетащить) и выбор их

размеров– Задание свойств элементов управления в окне Properties– Назначение обработчиков событий для элементов управления

• Дизайнеры предназначены для формирования частей программы на основе интерпретации действий программиста с инструментами– Добавление элемента управления на форму – вставка объекта

соответствующего класса в класс формы– Размещение и изменение размеров – задание свойств созданных объектов– Задание параметров элемента управления – присвоение значений

свойствам созданных объектов.– Задание обработчиков событий для элементов управления – создание

методов для обработки событий и присвоение их соответствующим делегатам классов элементов управления.

Page 23: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Разделение классов на части• Для формы создаются 2 файла

– Form1.cs (в котором записываются обработчики событий, с которыми работает программист)

– Form1.Designer.cs (часть класса производного от Form, с которой работает программа-дизайнер, без необходимости не менять, но нужно понимать, что в этом файле содержится)

• В этих файлах описывается один класс с ключевым словом partial:

partial class Form1 { . . . }• Файл Form1.Designer.cs хранит часть класса производного от

Form, с которой работает дизайнер.• Файл Form1.cs хранит часть класса производного от Form, с

которой работает программист (обработка событий элементов управления).

• Для просмотра кода из файла Form1.cs нужно выбрать в контекстном меню команду “View Code”

• Кроме файлов формы создается файл Program.cs с методом Main, в котором создается экземпляр нового класса форм и показывается окно программы.

Page 24: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Окно управления решением

• В проект включены три файла:– Form1.cs– Form1.Designer.cs– Program.cs

Page 25: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

«Windows Forms Designers поможет только до определенного момента, а потом вам придется писать код и, возможно, разбираться в том, что генерирует для вас Windows Forms Designers»

Чарльз Петзольд

Page 26: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Описание отдельных типов ЭУ

Page 27: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Класс меток - Label

• Предназначен для вывода текста на форму

• Основные свойства– Text– Font– ForeColor

Page 28: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Класс меток-ссылок LinkLable

• Свойство– LinkArea– Links – LinksData– bool LinkVisited – bool LinkVisited – LinkColor – VisitedLinkColor– ActiveLinkColor

• Событие– LinkClicked

Page 29: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Наследование классов кнопок

Page 30: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Класс кнопок - Button

• Элемент для сообщения о щелчке– Левая клавиша мыши– Клавиша пробел на клавиатуре

• Основное событие:– Click

Page 31: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Класс флажков - CheckBox

• состоит из маленького прямоугольника и текстовой строки

• основные свойства– bool Checked (get/set) – по умолчанию false– bool AutoCheck (get/set) – по умолчанию true– Appearance (get/set) – Normal, Button

• основное событие – изменение состояния– CheckedChanged

Page 32: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Класс переключателей -RadioButton

• для выбора из группы опций• Объединяются в группы (элемент

GroupBox) в которых выбран может быть только один переключатель

• Основные свойства– bool Checked (get/set)– bool AutoCheck (get/set)

• Основное событие – CheckedChanged (изменение состояния)

Page 33: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Порядок работы с переключателями

• Установить на форму элемент GroupBox и задать Text

• Поместить в элемент GroupBox элементы RadioButton

Page 34: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Текстовые поля - TextBox

• для ввода текста в программу• основные свойства

– string Text (get/set)– int MaxLength(get/set)– int TextLength (get)– string[] Lines (get/set)– bool Multiline (get/set) (по умолчанию false)

• основное событие – TextChanged

• имеет smart tag (задать Multiline)

Page 35: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Пример текстового поля

• Другие свойства – PasswordChar – задать заменитель для введенных

символов– ReadOnly– CharacterCasing (Normal – 0; Upper – 1; Lower - 2)– Полосы прокрутки для (Multiline = true и

WordWrap=false)

Page 36: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Методы текстового поля

• bool Modified (get/set)• void Undo()• void Сut()• void Copy()• void Paste()• void Clear()

Page 37: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элемент RichTextBox

• Поддерживает форматированный текст (rich text), в котором могут применяться разные шрифты, цвета, отступы абзацев и табуляция.

• Может импортировать и экспортировать текст в формате RTF (Reach Text Format)

• Свойства– string Rtf (get/set) задать или получить текст в

формате RTF• Методы

– LoadFile– SaveFile

Page 38: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элемент MaskedTextBox

• Улучшенный элемент TextBox • Свойство

– string Mask (get/set) – шаблон вводимых данных

Page 39: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Описание элементов в шаблонеЭлементшаблона Описание

0Digit, required. This element will accept any single digit between 0 and 9.

9 Digit or space, optional.

#Digit or space, optional. If this position is blank in the mask, it will be rendered as a space in the Text property. Plus (+) and minus (-) signs are allowed.

LLetter, required. Restricts input to the ASCII letters a-z and A-Z. This mask element is equivalent to [a-zA-Z] in regular expressions.

?Letter, optional. Restricts input to the ASCII letters a-z and A-Z. This mask element is equivalent to [a-zA-Z]? in regular expressions.

Page 40: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Окно списков ListBox• Часто используется в тех же целях, что и группа

переключателей (RadioButton) – чтобы пользователь мог выбрать один элемент из нескольких.

• Занимает меньше место на форме и позволяет выбирать несколько элементов.

• Имеет свойства – Коллекция Items

• Items[индекс] (get/set)• Items.Add(object), Remove(object), Clear(), Count

– int SelectionMode (None -0; One – 1; MultipleSimple - 2)– bool Sorted (get/set)– int SelectedIndex = 0;– object SelectedItem (get/set)

Page 41: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Окно списков ListBox

• Примеры свойств:– object SelectedItem тоже самое, что и

• object Items[lstbox.SelectedIndex]– object SelectedValue – значение, связанное с выбранным элементом;– string Text – текстовое значение выделенного элемента (если в классе

задан метод ToString - lstbox.SelectedItem.ToString())

– ListBox.SelectedIndexCollection SelectedIndexes (get)– ListBox.SelectedObjectCollection SelectedItems (get)

• Методы:– void SetSelected(int index, bool bSelect)– bool GetSelected(int index)– void ClearSelected()

• События– SelectedIndexChanged - пользователь выбрал другое значение из

списка

Page 42: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Коллекция элементов ListBox

• Коллекция элементов Items– Add (object o) – добавление элемента;– Insert(int n, object o) - вставка элемента в заданное

место;– RemoveAt (int n) – удаление элемента из

заданного места;– Remove (object o) - удаление заданного объекта;– Clear() – удалить все объекты

Page 43: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Связывание с источником данных

• DataSource = Book;• string DisplayMember = "Name";• string ValueMember = “Id";• SelectedIndex = 0;

Page 44: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Комбинированные окна ComboBox

• Текстовое поле + Окно списка• Свойства:

– DropDownStyle• Simple (0) – поле можно редактировать,

список всегда показывать• DropDown (1) - поле можно

редактировать, список выпадает (по умолчанию)

• DropDownList (2) - поле нельзя редактировать, список выпадает

• Основные события:– TextChanged – при каждом изменении текста в текстовом поле– SelectedIndexChanged –выбор другого элемента

Page 45: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элемент CheckedListBox

• Класс производный от класса ListBox• string[] myFruit = {"Apples", "Oranges","Tomato"};

checkedListBox1.Items.AddRange(myFruit);

Page 46: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Класс PictureBox

• Вывод изображения в в окне• Свойства

– Image – изображение (bmp, gif, jpg, wmf, ico);

– ImageLocation – путь к файлу (метод Load)– SizeMode – PictureBoxSizeMode (Normal,

StretchImage; AutoSize; CenterImage; Zoom);– BoderStyle

Page 47: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элемент управления WebBrowser• Показать web страницу на форме• Свойства

– URL (get/set) – адрес страницы;– Document (get) – получить HTMLDocument показанной web-

страницы;– string DocumentText (get/set) - содержание HTML страницы;– string DocumentTitle (get) – получить заголовок страницы

• Методы– void Navigate ( string urlString ) – загрузить и показать новую

страницу– void GoHome () – перейти к странице по умолчанию– bool GoBack () – перейти к предыдущей странице истории– bool GoForward () – перейти к следующей странице истории

• Событие– event WebBrowserDocumentCompletedEventHandler

DocumentCompleted – завершение загрузки документа

Page 48: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элемент управления ProgressBar

• Показывает ход выполнения долгой операции

• Свойства– Style– Value– Maximum– Minimum

Page 49: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элемент NumericUpDown

• для задания цифрового значения с помощью мыши

• Свойства– decimal Minimum– decimal Maximum– decimal Value– decimal Increment

• Свойства– event EventHandler ValueChanged

Page 50: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Подсказки - ToolTip

• Небольшое прямоугольное окно с пояснительными текстом

• Нужно добавить к форме элемент ToolTip

• Для отображения надо – В обработчике события Form1_Load для элементов

управления к которым нужно добавить пояснение вызвать метод

• void SetToolTip(Control cntl, string strTip)– Или в свойствах элементов формы задать текст

• Для удаления подсказки вызвать методvoid SetToolTip(Control cntl, null)

Page 51: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Элементы управления DataTimePicker и MonthCalendar

• MonthCalendar – выбор даты или интервала дат– Событие DateChanged (параметр -

DateRangeEventArgs е.Start и e.End)

• DataTimePicker – для выбора одной даты (Value)

• или одного значения времени (ShowUpDown – true; Format - Time)

Page 52: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Класс таймер - Timer

• Инициирует события через заданные интервалы времени

• Свойства– int Interval (миллисекунды)– bool Enabled

• Методы– void Start () – начать работу– void Stop () – закончить работу

• Событие– event EventHandler Tick

Page 53: Высокоуровневые методы информатики и программирования Лекция  21 Элементы управления

Контейнеры

• GroupBox – группа элементов• Panel – панель с элементами• SplitContainer – разделяемый контейнер• TabControl – панели с закладками• TableLayoutPanel – табличная разметка