
- •Лабораторная работа 6 Создание windows-приложений в Visual Studio .Net Основы работы с Visual Studio .Net
- •Solution Explorer
- •Class View
- •Properties Window
- •Toolbox
- •Режимы дизайна и кода
- •Свойства проекта
- •Компиляция программы
- •Элементы управления
- •Добавляем кнопочку
- •Добавляем поле ввода и вывода
- •Добавляем выполнение математической операции
- •Добавляем картиночку
- •События мыши
- •Форматирование элементов управления
- •Создание главного меню
- •Перечисление MdiLayout
- •Вырезание, копирование и вставка текстовых фрагментов
- •Контекстное меню
- •Диалоговые окна
- •SaveFileDialog
- •OpenFileDialog и SaveFileDialog для sdi-приложений
- •FontDialog
- •ColorDialog
- •Закрывание формы
Форматирование элементов управления
Расположение элементов на форме во многом определяет удобство работы с готовым приложением. Пункт главного меню Format содержит опции выравнивания, изменения размера и блокировки элементов управления (рис. 2.4):
Рисунок
2.4 -
Пункт главного меню Format
При выделении нескольких элементов управления около одного из них появляются темные точки маркера (рис.2.4). Свойства выбранных элементов будут изменяться относительно этого, главного элемента управления. Для последовательного выделения нескольких элементов удерживаем клавишу Shift, главным элементом будет последний выделенный элемент.
Таблица 2.2 Значение пунктов меню формат
Пункт меню Format |
Описание |
Align |
Выравнивание выбранных элементов управления |
Make Same Size |
Установка равного размера |
Horizontal Spacing |
Пробел между элементами по горизонтали |
Vertical Spacing |
Пробел между элементами по вертикали |
Center in Form |
Расположение элементов управления относительно формы |
Order |
Вертикальный порядок элементов управления |
Lock Controls |
Блокировка элементов |
При создании дизайна формы всегда следует использовать возможности студии для расположения элементов. При создании приложения SocOpros, например, было использовано расположение элементов управления относительно центра формы (Center in Form).
Группа меню
В любом приложении присутствует меню, содержащее в себе доступ ко всем возможностям и настройкам приложения. Элементы MainMenu, ContextMenu представляют собой готовые формы для внесения заголовков и пунктов меню.
Создание главного меню
Большинство Windows-приложений оснащено главным меню, которое представляет собой иерархическую структуру выполняемых функций и команд. Практически все функции, которые можно осуществить при помощи элементов управления, имеют свой аналог в виде пункта меню.
Для создания главного меню используется элемент управления MainMenu, расположенный на панели инструментов ToolBox. Создайте новое приложение и назовите его NotepadC#. Установите следующие свойства формы:
Form1, форма, Свойство |
Значение |
Name |
frmmain |
Icon |
|
Text |
Notepad C# |
WindowState |
Maximized |
Перетаскиваем элемент управления на форму. Нам предстоит заполнить строки меню следующими пунктами (рис. 3.1):
Рисунок 3.1 - Пункты главного меню приложения Notepad C#
Для этого вызовите контекстное меню, установив курсор мыши на компоненте MainMenu1, расположенной на панели невидимых компонент, и выберите пункт Edit Menu. Каждый пункт главного меню имеет свое окно свойств, в котором, подобно другим элементам управления, задаются значения свойств Name и Text (рис. 3.2). В поле Text перед словом New стоит знак & — так называемый амперсанд, указывающий, что N должно быть подчеркнута и будет частью встроенного клавиатурного интерфейса Windows. Когда пользователь на клавиатуре нажимает клавишу Alt и затем N, выводится подменю New.
Рисунок 3.2 - Свойства пункта меню New
В Windows есть еще интерфейс для работы с так называемыми быстрыми клавишами, или акселераторами. Сочетание клавиш указывают из перечисления Shortcut. Следует назначать стандартным пунктам общепринятые сочетания клавиш. Горизонтальная разделительная линия используется в тех случаях, когда надо визуально отделить сходные группы задач; для ее появления в свойстве Text пункта меню просто вводим знак тире. Для использования пунктов меню в коде, им также назначают имена (свойство Name), которые особенно важны, т.к. пунктов меню обычно бывает много. Свойства пунктов меню в приложении Notepad C# приводятся в таблице 3.1.
Таблица 3.1. Пункты главного меню приложения Notepad C#
Name |
Text |
Shortcut |
mnuFile |
&File |
|
mnuNew |
&New |
CtrlN |
mnuOpen |
&Open |
CtrlO |
mnuSave |
&Save |
CtrlS |
menuItem5 |
- |
|
mnuExit |
&Exit |
AltF4 |
mnuEdit |
&Edit |
|
mnuCut |
Cu&t |
CtrlX |
mnuCopy |
&Copy |
CtrlC |
mnuPaste |
&Paste |
CtrlV |
mnuDelete |
&Delete |
Del |
mnuSelectAll |
&SelectAll |
CtrlA |
mnuFormat |
F&ormat |
|
mnuFont |
Font… |
|
mnuColor |
Color… |
|
mnuWindow |
&Window |
|
mnuArrangeIcons |
Arrange Icons |
|
mnuCascade |
Cascade |
|
mnuTileHorizontal |
Tile Horizontal |
|
mnuTileVertical |
Tile Vertical |
|
mnuHelp |
? |
|
mnuAbout |
About Programm... |
|
Можете самостоятельно выбрать сочетания клавиш, не указанные в табл. 3.1, для соответствующих пунктов меню.
В MDI-приложениях главная форма содержит в себе несколько документов, каждый из которых является холстом в графических программах или полем для текста в редакторах. Продолжим работу над приложением Notepad C#. В окне Solution Explorer щелкаем правой кнопкой на имени проекта и в появившемся контекстном меню выбираем Add/ Add Windows Form… . В появившемся окне называем форму – blank.cs. В нашем проекте появилась новая форма — будем называть ее дочерней. В режиме дизайна перетаскиваем на нее элемент управления RichTextBox: в отличие от элемента textBox, размер содержимого текста в нем не ограничивается 64 Кб; кроме того, RichTextBox позволяет редактировать цвет текста, добавлять изображения. Свойству Dock этого элемента устанавливаем значение Fill.
Переходим в режим дизайна формы frmmain и устанавливаем свойству IsMdiContainer значение true. Цвет формы при этом становится темно-серым. Новые документы будут у нас появляться при нажатии пункта меню New (которому мы установили сочетание клавиш Ctrl+N), поэтому дважды щелкаем в этом пункте и переходим в код.
При нажатии клавиш Ctrl+N или выборе пункта меню New появляется несколько окон, расположенных каскадом. Однако заголовок у них будет одинаковый — blank. При создании нескольких документов, например в Microsoft Word, они называются ДокументN, где N — номер документа. Переключаемся в код формы blank, и в классе blank объявляем переменную DocName:
public string DocName = "";
Переключаемся в код формы frmmain и в классе frmmain объявляем переменную openDocuments:
private int openDocuments = 0;
Присваиваем переменной DocName часть названия по шаблону, в который включен счетчик числа открываемых документов, затем это значение передаем свойству Text создаваемой формы frm:
private void mnuNew_Click(object sender, System.EventArgs e) {
blank frm = new blank();
frm.DocName = "Untitled " + ++openDocuments;
frm.Text = frm.DocName;
frm.MdiParent = this;
frm.Show();
}
Запускаем приложение.