530 likes | 765 Views
Ð’Ñ‹Ñокоуровневые методы информатики и Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð›ÐµÐºÑ†Ð¸Ñ 21 Ðлементы управлениÑ. План работы. Базовый клаÑÑ Ñлементов ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ â€“ Control ОÑновные ÑвойÑтва и методы базового клаÑÑа ОÑновные Ñлементы управлениÑ. Ðлементы ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ( Controls ).
E N D
Высокоуровневые методы информатики и программированияЛекция 21Элементы управления
План работы • Базовый класс элементов управления – Control • Основные свойства и методы базового класса • Основные элементы управления
Элементы управления (Controls) • Классы производные от базового класса System.Windows.Forms.Control. • Наследуют всю функциональность данного класса.
Типы элементов управления • Визуальные элементы управления (controls) • Компоненты (components) – не визуальные элементы управления
Некоторые базовые свойства класса 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 – присоединение к сторонам родительской формы.
Размер окна • Свойство Size – начальный размер окна. • Свойство FormBorderStyle задает вид рамки формы: • Sizable – рамка с изменяющимся размером; при изменении размера возникает событие SizeChanged; • FixedSingle • Fixed3D • FixedDialog
Свойство Anchor • Задает стороны родительского окна с которыми ЭУ связан. В этом случае, если родительское окно меняет размеры, то расстояние от ЭУ до заданных сторон родительской формы будет поддерживаться постоянным (неизменным). • Например, если задан ЭУ Button, который привязан к left и right, button1.Anchor = (AnchorStyles.Left | AnchorStyles.Right); то при изменении размера формы ЭУ Buton изменяет свои размеры так, чтобы сохранить расстояние до левой и правой сторон формы. • Если ЭУ не привязан к сторонам формы и размер формы можно менять, положение ЭУ относительно сторон формы меняется.
Свойство Dock • Задание присоединения (dock) границ ЭУ к границам родительского ЭУ и определения того, как ЭУ меняет свои размеры при изменений размеров родительского ЭУ. • Свойства Anchor и Dock являются взаимно исключающими. Только одно может быть задано для ЭУ.
Некоторые основные методы класса System.Windows.Forms.Control • Show() – показать окно на экране; • Hide() - спрятать окно (убрать с экрана); • OnEvent() – обработать заданное событие; • CreateGrafics() – создать элемент класса Grafics для рисованияв окне; • Update() – обновить содержание окна; • Invalidate() – объявить содержание окна неправильным, что заставляет ОС отправить событие WM_PAINT о необходимости перерисовки содержания окна.
Группы элементов управления • Более 50 элементов управления (классов) • Стандартные элементы управления • Компоненты (не визуальные ЭУ) • Элементы управления для работы с меню и инструментальными полосами • Элементы управления для работы с принтером • Общие диалоги • Элементы управления для работы с базой данных
Использование элементов управления • Включить в состав класса Form переменные требуемых типов • Создать экземпляры классов элементов управления • Задать их начальные свойства • Создать методы - обработчики событий • Связать эти методы с события элемента управления • Добавить созданные объекты к коллекции Controls
Иерархия классов – элементов управления
Стандартные элементы управления – Common Controls • Label (метки) • LinkLabel (метки) • Button (кнопки) • RadioButton (кнопки) • CheckBox (флажки) • CheckedListBox (флажки) • ListBox (флажки) • ListView (списки) • ComboBox (списки) • TextBox (текст) • RichTextBox (текст) • MaskedTextBox (текст) • NotifyIcon • NumericUpDown • PictureBox (графика) • ProgressBar • ToolTip • TreeView (дерево) • WebBrowser • DateTimePicker • MonthCalendar
Компоненты • Элементы управления без визуального интерфейса • Timer • FileSystemWatcher • BackgroundWorker • HelpProvider • ImageList • SerialPort • ServiceController
Элементы управления для работы с принтером - Printing • PrintDialog • PageSetupDialog • PrintDocument • PrintPreviewDialog • PrintPreviewControl
Автоматизация программирования на основе визуальных действий с элементами управления
Инструменты • Windows Forms Designer «Конструктор форм Windows» - специальные подсистемы в Visual Studio для работы с инструментами визуальной разработки. • Набор элементов управления (Toolbox) • Форма – контейнер для размещения элементов управления • Окно Propertiesдля работы со свойствами элементов управления в режиме проектирования (design mode)
Окно c набором элементов управления «Tollbox» • Содержит все элементы управления, которые могут быть размещены на форме • Все элементы разделены на группы • Позволяет выбрать нужный элемент управления и перетащить его на форму
Просмотр свойств объекта • Выделить элемент (должны появиться handles) • Выделить элемент и выбрать команду Properties в контекстном меню.
Окно свойств «Properties» • Позволяет выбрать свойство, посмотреть значение и задать новое значение.
События элемента в окне свойств • Выбрать событие • Двойной щелчок на имени события – создание пустого обработчика событий со стандартным именем. • Задание имени и щелчок - создание пустого обработчика событий со стандартным именем. • Одинарный щелчок на имени события – переход к обработчику событий. • Можно сменить имя обработчика события
Работа дизайнеров • В Visual Studio имеется несколько визуальных проектировщиков форм (visual forms designers) • Основные операции: • «Перетащить и уронить» (“drag-and-drop”) на форме элемент управления • Перемещение элементов управления на форме (перетащить) и выбор их размеров • Задание свойств элементов управления в окне Properties • Назначение обработчиков событий для элементов управления • Дизайнеры предназначены для формирования частей программы на основе интерпретации действий программиста с инструментами • Добавление элемента управления на форму – вставка объекта соответствующего класса в класс формы • Размещение и изменение размеров – задание свойств созданных объектов • Задание параметров элемента управления – присвоение значений свойствам созданных объектов. • Задание обработчиков событий для элементов управления – создание методов для обработки событий и присвоение их соответствующим делегатам классов элементов управления.
Разделение классов на части • Для формы создаются 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, в котором создается экземпляр нового класса форм и показывается окно программы.
Окно управления решением • В проект включены три файла: • Form1.cs • Form1.Designer.cs • Program.cs
«Windows Forms Designers поможет только до определенного момента, а потом вам придется писать код и, возможно, разбираться в том, что генерирует для вас Windows Forms Designers» Чарльз Петзольд
Класс меток - Label • Предназначен для вывода текста на форму • Основные свойства • Text • Font • ForeColor
Класс меток-ссылок LinkLable • Свойство • LinkArea • Links • LinksData • bool LinkVisited • bool LinkVisited • LinkColor • VisitedLinkColor • ActiveLinkColor • Событие • LinkClicked
Класс кнопок - Button • Элемент для сообщения о щелчке • Левая клавиша мыши • Клавиша пробел на клавиатуре • Основное событие: • Click
Класс флажков - CheckBox • состоит из маленького прямоугольника и текстовой строки • основные свойства • bool Checked (get/set) – по умолчанию false • bool AutoCheck (get/set) – по умолчанию true • Appearance (get/set) – Normal, Button • основное событие – изменение состояния • CheckedChanged
Класс переключателей -RadioButton • для выбора из группы опций • Объединяются в группы (элемент GroupBox) в которых выбран может быть только один переключатель • Основные свойства • bool Checked (get/set) • bool AutoCheck (get/set) • Основное событие • CheckedChanged (изменение состояния)
Порядок работыс переключателями • Установить на форму элемент GroupBox и задать Text • Поместить в элемент GroupBox элементы RadioButton
Текстовые поля - 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)
Пример текстового поля • Другие свойства • PasswordChar – задать заменитель для введенных символов • ReadOnly • CharacterCasing (Normal – 0; Upper – 1; Lower - 2) • Полосы прокрутки для (Multiline = true и WordWrap=false)
Методы текстового поля • bool Modified (get/set) • void Undo() • void Сut() • void Copy() • void Paste() • void Clear()
Элемент RichTextBox • Поддерживает форматированный текст (rich text), в котором могут применяться разные шрифты, цвета, отступы абзацев и табуляция. • Может импортировать и экспортировать текст в формате RTF (Reach Text Format) • Свойства • string Rtf (get/set) задать или получить текст в формате RTF • Методы • LoadFile • SaveFile
Элемент MaskedTextBox • Улучшенный элемент TextBox • Свойство • string Mask (get/set) – шаблон вводимых данных
Окно списков 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)
Окно списков 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 - пользователь выбрал другое значение из списка
Коллекция элементов ListBox • Коллекция элементов Items • Add (object o) – добавление элемента; • Insert(int n, object o) - вставка элемента в заданное место; • RemoveAt (int n) – удаление элемента из заданного места; • Remove (object o) - удаление заданного объекта; • Clear() – удалить все объекты
Связывание с источником данных • DataSource = Book; • string DisplayMember = "Name"; • string ValueMember = “Id"; • SelectedIndex = 0;
Комбинированные окна ComboBox • Текстовое поле + Окно списка • Свойства: • DropDownStyle • Simple (0) – поле можно редактировать, список всегда показывать • DropDown (1) - поле можно редактировать, список выпадает (по умолчанию) • DropDownList (2) - поле нельзя редактировать, список выпадает • Основные события: • TextChanged – при каждом изменении текста в текстовом поле • SelectedIndexChanged –выбор другого элемента
Элемент CheckedListBox • Класс производный от класса ListBox • string[] myFruit = {"Apples", "Oranges","Tomato"}; checkedListBox1.Items.AddRange(myFruit);
Класс PictureBox • Вывод изображения в в окне • Свойства • Image – изображение (bmp, gif, jpg, wmf, ico); • ImageLocation – путь к файлу (метод Load) • SizeMode – PictureBoxSizeMode (Normal, StretchImage; AutoSize; CenterImage; Zoom); • BoderStyle
Элемент управления 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 – завершение загрузки документа
Элемент управления ProgressBar • Показывает ход выполнения долгой операции • Свойства • Style • Value • Maximum • Minimum
Элемент NumericUpDown • для задания цифрового значения с помощью мыши • Свойства • decimal Minimum • decimal Maximum • decimal Value • decimal Increment • Свойства • event EventHandler ValueChanged
Подсказки - ToolTip • Небольшое прямоугольное окно с пояснительными текстом • Нужно добавить к формеэлемент ToolTip • Для отображения надо • В обработчике события Form1_Load для элементов управления к которым нужно добавить пояснение вызвать метод • void SetToolTip(Control cntl, string strTip) • Или в свойствах элементов формы задать текст • Для удаления подсказки вызвать метод void SetToolTip(Control cntl, null)