390 likes | 622 Views
Высокоуровневые методы информатики и программирования Лекция 2 3 Графический интерфейс форм. План работы. Основные э лементы интерфейса окна программы. Меню Инструментальные полосы. Полосы состояния. Типы окон программы.
E N D
Высокоуровневые методы информатики и программированияЛекция 23Графический интерфейс форм
План работы • Основные элементы интерфейса окна программы. • Меню • Инструментальные полосы. • Полосы состояния.
Типы окон программы • Приложение (прикладная программа - application)включает набор окон (Form) • Типы окон • Основное окно • Диалоги • Стандартные • Специальные
Элементы интерфейса основного окна • Основные элементы интерфейса формыприложения: • Меню – иерархически организованный набор команд, которые может выполнить приложение. • Инструментальные полосы – наборы графических элементов (иконок), которые позволяют выполнить команды приложения (дублируют пункты меню). • Полоса состояния – набор ЭУ для отображения хода выполнения приложением различных задач.
Пример размещения элементы управления программы
Множество элементов ToolStrip • Предоставляют общие возможности для создания интерфейса пользователя в Windows Form • ToolStrip, • MenuStrip, • ContextMenuStrip, • StatusStrip, • ToolStripDropDown • Они предоставляют множество возможностей во время проектирования (Design mode)и во время выполнения (Run-time mode).
Класс ToolStripItem • ToolStripItem это абстрактный базовый класс для всех элементов, которые могут размещаться в ToolStrip. • Класс ToolStrip управляет рисованием, работой с клавиатурой и мышью этих элементов. • Класс ToolStripItem управляет событиями и размещением элементов.
Классы меню Базовый класс ToolStrip Базовый класс ToolStripItem Основное меню MenuStrip Контекстное меню ContextMenuStrip Строка состояния StatusStrip Пункт меню ToolStripMenuItem Класс MenuStripимеeт свойство Items – коллекция элементов класса ToolStripMenuItem Класс ToolStripMenuItem имеeт свойство DropDownItems – коллекция элементов класса ToolStripMenuItem
Меню Один из основных интерфейсов программы. Разные виды меню в программе: • Главное меню – MenuStrip • Контекстное меню – ContextMenuStrip У формы есть свойства • MainMenuStrip – нужно присвоить ссылку на объект класса MenuStrip • ContextMenuStrip – нужно присвоить ссылку на объект класса ContextMenuStrip
Пример меню VB программа с меню Файл Справка Новый Выход MenuStrip Новый Выход Подменю ContextMenuStrip ToolStripMenuItem: Файл, Справка, Новый, Выход – связаны с обработчиками событий Click
Структура меню MenuStrip MainMenuStrip ToolStripMenuItem Items ToolStripMenuItem Form DropDownItems DropDownItems ToolStripMenuItem Items ToolStripMenuItem Items ToolStripMenuItem
Класс MenuStrip Для показа на форме ссылка на объект MenuStripдолжна быть присвоена свойству формы MainMenuStrip Свойство Items()- коллекция пунктов меню: ToolStripMenuItem ToolStripComboBox ToolStripTextBox ToolStripSeparator
Класс пунктов менюToolStripMenuItem Свойства Text – название пункта меню DropDownItems() – коллекция пунктов меню Checked – ставить ли метку у этого пункта Enabled– активный ли пункт меню Shortcut – горячие клавиши для вызова События Click (при щелчке по пункту меню) Popup (перед показом данного пункта меню) Select (курсор находится над пунктом меню)
Задание обработчика пункта меню Создание нового пункта с заданным названием и обработчиком событияClick. ToolStripMenuItem miClose = new ToolStripMenuItem() miClose.Text = "Close“; miClose.Close += new EventHandler(CloseOnClick)) . . . public void CloseOnClick(object o, EventArgs e) { frm.Close(); }
Задние пунктов подменю • Подменю – массив пунктов меню. • Создание нового пункта с заданным названием и массивом пунктов подменю (подменю). Пример: создание пункта меню “File”, который показывает подменю с двумя пунктами (“New”, “Close”) MenuStripItem miFile = new MenuStripItem( ); miFile.Text = “File“; // добавляем по пунктам miFile.DropDownItems.Add(miNew); miFile.DropDownItems.Add(miClose); // или создаем и инициализируем массив пунктов меню miFile.DropDownItems.AddRange (new MenuStripItem[ ] {miNew, miClose} );
Контекстноеменю (ContextMenuStrip) Появляется при нажатии правой клавиши на поверхности формы появится контекстное меню. Элемент класса ContextMenuStrip должен быть присвоен свойству формы Form.ContextMenuStrip Запомнить: при работе в режиме Design созданное контекстное меню автоматически свойству формы не присваивается. Надо вручную свойству формы ContextMenuStripзадать ссылку на созданное контекстное меню.
Пример контекстного меню элемента TextBox
Создание контекстного меню Создать элемент класса ContextMenuStrip Задать пункты меню – элементы ToolStripMenuItem Задать обработчики событий для пунктов меню Присвоить ссылку на созданный объект ContextMenuStrip свойству формы ContextMenuStrip(в окне Properties для формы)
Инструментальная полоса –класс ToolStrip Предназначена для размещения ЭУ, которые вызывают некоторые действия программы. Обычно инструментальная полоса содержит ЭУ для быстрого выполнения команд меню.
Основные свойства класс ToolStrip Items – коллекция ЭУ, включенных в инструментальную полосу; Dock – прикрепление инструментальной полосы к краям формы; RenderMode – способ отрисовки инструментальной полосы.
ЭУ для размещения в ToolStrip ToolStripButton ToolStripSplitButton ToolStripLabel ToolStripDropDownButton ToolStripTextBox ToolStripProgressBar ToolStripComboBox ToolStripSeparator
Класс StatusStrip • Строка состояния показывает сообщения о ходе работы программы • Для добавления к форме нужно создать экземпляр класса StatusStrip (вручную или с помощью дизайнера). • В добавленный объект могут быть вставлены объекты разных типов (ToolStripStatusLabel, ToolStripProgressBar и др.).
Типы интерфейсов приложений SDI – single document interface MDI – multiple document interface
Типы интерфейсов приложений • SDI – single document interface • MDI – multiple document interface • Parent Form – контейнер для Child form • свойство IsMDIContainer =True • Child Form – дочернее окно, создается в клиентской области Родительского окна • свойство MdiParent = <ссылка на MDI Parent>
Создание MDI интерфейса В родительской форме (parent form – контейнер для Child form) задается свойство: IsMDIContainer=True В дочерней форме (child form – дочернее окно, создается в клиентской области Родительского окна) задается свойство: MdiParent = <ссылка на MDI Parent>
Создание дочернего окна рrivate void mnuProd_Click(object o, EventArgs) { static int intCount; intCount ++; frmProductsfrm = new frmProducts(); frm.MdiParent = this; frm.Text = frm.Text + " " + intCount.ToString(); frm.Show(); }
Меню в MDI • Дочернее окно может иметь свое меню; • При работе с дочерним окном, меню родительского и дочернего окна объединяются (merged) • Каждый MenuItem имеют свойства MergeOrder и MergeType. • Свойство MergeOrder задает относительной позицией menu item при слиянии с родительским меню. По умолчанию значение 0, указывает, что menu item будет добавлено в конец существующих menu items. • Свойство MergeType задает,поведение menu item, если относительные позиции элементов меню при объединении совпадают. • Add – добавление к уже имеющимся элементам (по умолчанию) • MergeItems – подэлементы данного элемента объединяются с совпавшим элементом родительского меню; • Remove – элемент не добавляется • Replace – элемент заменяет элемент родительского меню.
рrivate void mnuCascade_Click( Object o, EventArgs e) { this.LayoutMdi(MdiLayout.Cascade) } ActiveMdiChild – ссылка на активное дочернее окно.