Программирование >>  Программирование с использованием ajax 

1 ... 145 146 147 [ 148 ] 149 150 151 ... 396


Практическое занятие Использование элементэ управления

RichTextBox

Как всегда, начнем с разработки формы.

1. Создайте новое Windows приложение RichTextBoxTest на С# в каталоге

С:\BegVCSharp\Chapterl5.

2. Создайте форму, как показано на рис. 15.14. Текстовое поле txtSize должно быть элементом управления типа TextBox. Текстовое поле RichTextBoxText должно быть элементом управления типа RichTextBox.

ки1о£Ыс I jbikHtUiKicibe] [ xloniolc butaCete ] t b l5in (MBct-Soi

i nchTex o<rexf

Puc. 15.14. Форма приложения RichTextBoxTest

3. Назовите элементы управления, как показано на рис. 15.14.

4. Установите свойство Text всех элементов управления, кроме текстовых полей, в соответствии с их именами, за исключением первой части имени, описывающей тип элемента управления.

5. Измените значение свойства Text текстового поля textBoxSize на 10.

6. Выполните привязку элементов управления, как показано в табл. 15.13.

Таблица 15.13. Привязка элементов управления для приложения RichTextBoxTest

Имя элемента управления

Значение привязки

buttonLoad и buttonSave

richTextBoxText

Все остальные

Bottom

Тор, Left, Bottom, Right Top

7. Установите значение свойства MinimumSize формы таким же, как у свойства Size.



Описание полученных результатов

На этом реализация визуальной части примера завершается. Переходя непосредственно к работе с кодом, дважды щелкните на кнопке Bold, чтобы добавить в код обработчик события Click. Код обработчика события имеет следующий вид:

private void buttonBold Click(object sender, EventArgs e) {

Font oldFont; Font newFont;

Получение шрифта, используемого в выбранном тексте. oldFont = this.richTextBoxText.SelectionFont;

Если в настоящий момент шрифт использует полужирный стиль, нужно удалить форматирование, if (OldFont.Bold)

newFont = new Font(oldFont, oldFont.Style & -FontStyle.Bold); else

newFont = new Font(oldFont, oldFont.Style I FontStyle.Bold);

Вставка нового шрифта и возвращение фокуса элементу управления RichTextBox. this.richTextBoxText.SelectionFont = newFont; this.richTextBoxText.Focus();

Начнем с получения шрифта, используемого в текущей выборке, и присваивания его локальной переменной oldFont. Затем проверим, не является ли эта выборка уже набранной полужирным шрифтом. Если да, атрибут полужирного шрифта нужно удалить. В противном случае его нужно установить. Новый шрифт создается с применением oldFont в качестве прототипа, но с добавлением или удалением полужирного стиля при необходимости.

И, наконец, мы присваиваем новый шрифт выборке и возвращаем фокус элементу управления RichTextBox - объект Font подробнее описан в главе 33.

Обработчики событий для кнопок buttonltalic и buttonUnderline аналогичны рассмотренному, за исключением того, что они выполняют проверку на наличие соответствующих стилей. Дважды щелкните на кнопках Italic и Underline и добавьте следующий код:

private void buttonUnderline Click (object sender, EventArgs e) {

Font oldFont; Font newFont;

Получение шрифта, используемого в выбранном тексте. OldFont = this.richTextBoxText.SelectionFont;

Если в настоящий момент шрифт использует подчеркнутый стиль, его нужно удалить, if (oldFont.Underline)

newFont = new Font(oldFont, oldFont.Style & -FontStyle.Underline); else

newFont = new Font(oldFont, oldFont.Style I FontStyle.Underline); Вставка нового шрифта.

this.richTextBoxText.SelectionFont = newFont; this.richTextBoxText.Focus();

private void buttonltalic Click(object sender, EventArgs e) {

Font oldFont; Font newFont;



Получение шрифта, используемого в выбран1ом тексте. oldFont = this.richTextBoxText.SelectionFont;

Если в настоящий момент шрифт использует курсивный стиль, его нужно удалить, if (oldFont.Italic)

newFont = new Font(oldFont, oldFont.Style & -FontStyle.Italic); else

newFont = new Font(oldFont, oldFont.Style FontStyle.Italic); Вставка нового шрифта.

this.richTextBoxText.SelectionFont = newFont; this.richTextBoxText.Focus ();

Дважды щелкните на последней кнопке форматирования Center и добавьте следующий код:

private void buttonCenter Click(object sender, EventArgs e) {

if (this.richTextBoxText.SelectionAlignment == HorizontalAlignment.Center)

this.richTextBoxText.SelectionAlignment = HorizontalAlignment.Left; else

this.richTextBoxText.SelectionAlignment = HorizontalAlignment.Center; this.richTextBoxText.Focus();

В этом методе нужно проверить еще одно свойство - SelectionAlignment, чтобы проверить, центрирован ли уже текст в выборке. Это требуется потому, что нам необходимо, чтобы кнопка вела себя подобно переключателю - если текст выровнен по центру, он становится выровненным по левому краю; в противном случае он становится выровненным по центру. Свойство HorizontalAlignment представляет собой перечисление, которое может принимать значения Left (по левому краю). Right (по правому краю). Center (по центру). Justify (по ширине) и NotSet (без выравнивания). В данном случае мы просто проверяем, установлено ли значение Center. Если да, то мы устанавливаем выравнивание по левому краю. В противном случае мы устанавливаем выравнивание по центру.

Последняя задача, которую сможет выполнять наш простенький текстовый редактор - установка размера текста. Мы добавим два обработчика событий для текстового поля Size: один для управления вводом и один для обнаружения момента завершения ввода значения пользователем.

В списке Events окна Properties найдите события KeyPress и Validated элемента управления textBoxSize и дважды щелкните на них, чтобы добавить в код обработчики этих событий.

В отличие от события Validating, использованного ранее, событие Validated происходит после завершения всей проверки. Оба события используют вспомогательный метод ApplyTextSize, который принимает строку, содержащую размер текста:

private void textBoxSize KeyPress(object sender, KeyPressEventArgs e) {

Удаление всех символов, не являющихся цифрами, символом забоя или клавишей <Enter>.

if ((e.KeyChar < 48 I I e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 13)

e.Handled = true;

else if (e.KeyChar == 13)



1 ... 145 146 147 [ 148 ] 149 150 151 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика