Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНЫЕ РАБОТЫ по РПП.doc
Скачиваний:
77
Добавлен:
09.05.2015
Размер:
1.72 Mб
Скачать

Стиль символов

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

Реализация соответствующей функциональности возложена на методы SetBold, SetItalic, SetUnderline иSetStrikeout, которые мы добавили в обработчики сообщений строк меню Начертание:

private void menuFormatFontCharacterStyleBold_Click(object sender,    System.EventArgs e) {   SetBold(); // вызов методажирный шрифт } private void menuFormatFontCharacterStyleItalic_Click(object sender,    System.EventArgs e) {   SetItalic();// вызов методакурсив } private void menuFormatFontCharacterStyleUnderline_Click(   object sender, System.EventArgs e) {   SetUnderline();// вызов методаподчеркнутый шрифт } private void menuFormatFontCharacterStyleStrikeout_Click(   object sender, System.EventArgs e) {   SetStrikeout();// вызов методазачеркнутый шрифт }

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

Вот исходный текст данного метода:

Получив управление, метод SetBold - определяет шрифт фрагмента текста, выделенного пользователем, анализируя свойство richTextBox1.SelectionFont. Если шрифт определить не удалось, и это свойство содержит значение null, наша программа не делает никаких изменений.

Далее метод SetBold проверяет, был ли выделен фрагмент текста жирным шрифтом, анализируя свойство richTextBox1.SelectionFont.Bold. Если это свойство содержит значение true, то метод SetBold снимает выделение, если нет, то устанавливает его.

Для снятия выделения программа записывает в переменную newFontStyle значение FontStyle.Regular, а для установки — значение FontStyle.Bold.

В дальнейшем содержимое переменной newFontStyle будет использована методом SetBold для изменения оформления выделенного фрагмента текста. Это изменение выполняется следующим образом:

richTextBox1.SelectionFont = new Font(  currentFont.FontFamily, currentFont.Size, newFontStyle);

Здесь программа вначале создает новый шрифт как объект класса Font, передавая конструктору размер текущего шрифта currentFont.Size, а также новый стиль шрифта из переменной newFontStyle.

Далее этот шрифт записывается в свойство richTextBox1.SelectionFont, что и приводит к изменению стиля символов выделенного фрагмента текста.

Обратите также внимание, что при выделении фрагмента текста жирным шрифтом мы одновременно отмечаем «галочкой» строку меню Жирный. С этой целью мы вызываем созданный нами метод CheckMenuFontCharacterStyle:

Метод CheckMenuFontCharacterStyle по очереди проверяет стилевое оформление выделенных фрагментов, отмечая «галочками» соответствующие строки меню CharacterStyle или снимая со строк этого меню отметки.

Если фрагмент текста, выделенный пользователем, оформлен жирным шрифтом, свойство richTextBox1.SelectionFont.Bold содержит значение true. В этом случае наша программа отмечает «галочкой» строку Жирный меню Начертания, записывая значение true в свойство Checked данной строки:

menuFormatFontCharacterStyleBold.Checked = true;

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

menuFormatFontCharacterStyleBold.Checked = false;

Исходные тексты методов SetItalic, SetUnderline и SetStrikeout приведены ниже:

Установка стиля символов Italic

Установка стиля символов Underline

Установка стиля символов Strikeout