Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_С#_ч_2.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

3.4 Вопросы для самопроверки

1 Что означает GDI+ в языке C#?

2 Что определяет объект класса Brush?

3 Что определяет объект класса Pen?

4 Что определяет класс Graphics?

5 Какое сообщение в системе Windows «следит» за перемещением и изменением размера окон?

6 Как называется обработчик, связанный с перерисовкой содержимого окна формы нашего приложения?

7 Что определяет первый формальный параметр обработчика Form1_Paint?

8 Что определяет второй формальный параметр обработчика Form1_Paint?

9 Понятие контекста устройства монитора.

10 Какой метод требует от операционной системы Windows сформировать для формы сообщение WM_PAINT?

4 Использование меню в приложении

4.1 Меню программы

Меню программы должно соответствовать основным режимам работы программы, поэтому к выбору пунктов меню и команд отдельных пунктов необходимо относится с особой тщательностью. Для лучшего понимания технологии использования меню в программах рассмотрим последовательность действий при решении следующей учебной задачи.

Задача 4.1 Разработать приложение, позволяющее создавать матрицу 6*6 случайных целых чисел в диапазоне от 10 до 100. Напечатать эту матрицу с помощью richTextBox. Записывать клиентскую область приложения (включая распечатку матрицы) в текстовый файл. Считывать текстовый файл в клиентскую область – печатать содержимое текстового файла. Из содержимого клиентской области выделять матрицу. Все действия оформить с использованием меню.

Можно выделить три режима работы программы: Матрица (создание и печать), Файл (запись и чтение) и Текст (очистка и преобразование).

Создадим обычное приложение для работы в системе Windows.

Для добавления меню в главное окно нашего приложения необходимо переместить из окна элементов управления Toolbox значок меню с названием MenuStrip. Как только Вы это сделаете, окно форм примет вид, показанный на рисунке 4.1

Рисунок 4.1 – Добавление меню

В нижней части этого окна появится значок управляющего элемента — меню menuStrip1. Непосредственно под заголовком окна появится пустое пока меню, представленное полем с надписью Type Here (что можно перевести как «печатать здесь»).

Напечатайте в этом поле строку «&Matric». В результате этого в окне нашего приложения появится меню Matric (рисунок 4.2).

Рисунок 4.2 – Создание меню для работы с матрицей

Ввод символа & позволяет создать клавиатурный акселератор для ввода команды с помощью клавиатуры (Alt+P). Применение акселераторов является альтернативным мышке способом выбора команд. В комбинацию с клавишей Alt включается буква, стоящая за символом амперсанд. В тексте меню программы буквы, включенные в акселератор, отображаются подчеркнутыми.

После ввода режима работы программы поле ввода Type Here опустилось вниз, предлагая вводить команды заданного режима. Ведем две команды &SozM и &PrintM. После этого переходим в правое поле ввода Type Here для ввода режима работы с файлом. Последним введем меню режима работы с текстом клиентской области приложения.

Если при вводе Вы допустили ошибку, то ее можно исправить. Для этого нужно кликнуть правой кнопкой мышки в нужной строке меню и в появившемся на экране контекстном меню выбрать необходимый режим редактирования.

С помощью строки Insert New Вы можете вставить новую строку меню между уже существующих строк. Строка Insert Separator предназначена для вставки разделительной линии между строками меню. При помощи строки Edit Names можно отредактировать идентификаторы строк и меню.

Если Вам нужно изменить введенные названия строк и меню, это можно сделать по месту, выбрав нужную строку мышью.

После этого Вы можете оттранслировать приложение и запустить его, нажав кнопку F5. Убедитесь, что меню отображается, и Вы можете выбирать его строки. Если все нормально, можно переходить к следующему этапу создания нашего приложения.

Работу с текстом в нашем приложении мы будем выполнять с помощью элемента RichTextBox, позволяющего работать с файлами разного типа. Для этого перетащим из окна Toolbox на нашу форму элемент RichTextBox.

Настройте свойства компонента, чтобы он занимал все окно приложения. Далее отредактируйте свойство Dock. Это свойство задает расположение выбранного компонента внутри содержащей его формы – необходимо щелкнуть в центре (см. рисунок 4.3).

Рисунок 4.3 – Редактирование свойства Dock

Если запустить полученное приложение на выполнение, то в результате на экране должно появиться окно, показанное на рисунке 4.4.

Рисунок 4.4 – Рабочее окно программы

Обработчики событий от команд меню создаются таким же образом, что и обработчики событий от кнопок. Чтобы создать обработчик события для команды меню, ее нужно щелкнуть дважды левой клавишей мыши.

Создадим обработчики событий для всех команд, но не режимов работы программы. Все обработчики событий создаются с пустым телом, например:

private void sozMToolStripMenuItem_Click(object sender, EventArgs e)

{ }

Во многих приложениях основные команды меню программы дублируются «иконками», на инструментальных панелях. Создадим инструментальную панель для команд нашего приложения.