
- •Создание простых форм с помощью комплекса инструментальных средств разработки программ .Net sdk
- •Режимы дизайна и кода
- •Элементы управления
- •Общие свойства, события и методы элементов управления
- •Обработка событий в Windows Forms
- •События MouseDown и Keypress
- •Форматирование элементов управления
- •Создание меню
- •Закрытие формы
- •Диалоговые окна
- •Создание панели инструментов
- •Список элементов ListBox
- •Потоковые классы
- •Встроенные типы данных и потоки
- •Класс File
- •Сериализация объектов
- •Создание многооконного приложения
- •Для каждого пункта меню пишем обработчики событий, выполняющие соответсвтвующие пункту действия. Перечисление MdiLayout
- •Вырезание, копирование и вставка текстовых фрагментов
- •Контекстное меню
- •Диалоговые окна
- •Сохранение файла при закрытии формы
- •OpenFileDialog и SaveFileDialog для sdi-приложений
- •Int m, n, p; //размеры матриц
Создание многооконного приложения
Разберем создание MDI приложений на примере разработки программы «Блокнот».
Создайте новое приложение (программа 5) и назовите его NotepadC#. Установите следующие свойства формы:
Form1, форма, Свойство |
Значение |
Name |
Frmmain |
Icon |
|
Text |
NotepadC# |
WindowState |
Maximized |
Создайте меню приложения. Для этого перетащите элемент управления menuStrip, расположенный на панели инструментов ToolBox, на форму и заполните строки меню следующими пунктами (рис. 4.1).
Для этого вызовите контекстное меню, установив курсор мыши на компоненте menuStrip1, расположенной на панели невидимых компонент, и выберите пункт Edit Items. Каждый пункт главного меню имеет свое окно свойств, в котором, подобно другим элементам управления, задаются значения свойств Name и Text (рис. 4.2). В поле Text перед словом New стоит знак & — так называемый амперсанд, указывающий, что N должно быть подчеркнута и будет частью встроенного клавиатурного интерфейса Windows. Когда пользователь на клавиатуре нажимает клавишу Alt и затем N, выводится подменю New.
Рисунок 4.1 - Пункты главного меню приложения NotepadC#
Рисунок 4.2 - Свойства пункта меню New
В Windows есть еще интерфейс для работы с так называемыми быстрыми клавишами, или акселераторами. Сочетание клавиш указывают из перечисления Shortcut. Следует назначать стандартным пунктам общепринятые сочетания клавиш. Горизонтальная разделительная линия используется в тех случаях, когда надо визуально отделить сходные группы задач; для ее появления в свойстве Text пункта меню просто вводим знак тире. Для использования пунктов меню в коде, им также назначают имена (свойство Name), которые особенно важны, т.к. пунктов меню обычно бывает много. Свойства пунктов меню в приложении NotepadC# приводятся в таблице 4.1.
Таблица 4.1. Пункты главного меню приложения NotepadC#
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... |
|
В MDI-приложениях главная форма содержит в себе несколько документов, каждый из которых является холстом в графических программах или полем для текста в редакторах. В окне Solution Explorer щелкаем правой кнопкой на имени проекта и в появившемся контекстном меню выбираем Add/ New Item/ Windows Form . В появившемся окне называем форму – blank.h. В нашем проекте появилась новая форма — будем называть ее дочерней. В режиме дизайна перетаскиваем на нее элемент управления RichTextBox: в отличие от элемента textBox, размер содержимого текста в нем не ограничивается 64 Кб; кроме того, RichTextBox позволяет редактировать цвет текста, добавлять изображения. Свойству Dock этого элемента устанавливаем значение Fill.
Переходим в режим дизайна формы frmmain и устанавливаем свойству IsMdiContainer значение true. Цвет формы при этом становится темно-серым. Новые документы будут у нас появляться при нажатии пункта меню New, поэтому дважды щелкаем в этом пункте и переходим в код.
При создании нескольких документов, например в Microsoft Word, они называются ДокументN, где N — номер документа. Переключаемся в код формы blank, и в классе blank объявляем переменную public String DocName;
Переключаемся в код формы frmmain и в классе frmmain объявляем переменную private int openDoc;
Присваиваем переменной DocName часть названия по шаблону, в который включен счетчик числа открываемых документов, затем это значение передаем свойству Text создаваемой формы frm:
private void mnunew_Click(object sender, EventArgs e) {
frm = new blank();
frm.DocName = "Untitled " + ++openDoc;
frm.Text = frm.DocName;
frm.MdiParent = this;
frm.Show();
}