У вас вопросы?
У нас ответы:) SamZan.net

ЛАБОРАТОРНАЯ РАБОТА 6

Работа добавлена на сайт samzan.net: 2016-03-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 4.4.2025

ЛАБОРАТОРНАЯ РАБОТА № 6.
Создание SDI –приложения

Цель: формирование навыков использования компонента  RichTextBox при создании SDI –приложений.

Необходимые теоретические сведения

Компонент RichTextBox используется для получения текстовых сообщений от пользователя, а также служит для отображения и ввода форматированного текста (например, полужирного, подчеркнутого, курсивного). Это достигается посредством использования стандарта форматированного текста – RTF (расширенный текстовый формат).

Основные свойства элемента RichTextBox:

  •  CanRedo = true – последняя отмененная операция может быть снова применена с помощью метода Redo;
  •  CanUndo = true – отмена последнего действия, выполненного по отношению к компоненту RichTextBox;
  •  RedoActionName – содержит имя действия, которое должно быть выполнено методом Redo;
  •  UndoActionName – имя действия, которое будет выполнено, если пользователь выполнит отмену чего-либо;
  •  DetectUrls = true – автоматическое обнаружение URL-адресов и их форматирование (подчеркивание);
  •  Rtf – соответствует свойству Text (содержит текст в RTF формате);
  •  SelectedRtf / SelectedText – получение или установка параметров форматирования выделенного фрагмента текста (при копировании текста в другое приложение, например MS Word, форматирование будет сохранено / утрачено);
  •  SelectionAligment (= Center, Left, Right) – выравнивание выбранного текста;
  •  SelectionBullet – определяет, должен ли выбранный текст содержать маркеры абзацев, а также для вставки и удаления маркеров;
  •  BulletIndent – количество пикселей отступа маркера;
  •  SelectionColor / SelectionFont – изменения цвета текста / шрифта в выборке;
  •  SelectionLength – длина выборки;
  •  ShowSelectionMargin = true – слева от RichTextBox будет отображена граница;
  •  SelectionProtected = true – запрет форматирования отдельных фрагментов текста.

События класса RichTextBox:

  •  LinkClicced – отправляется, когда пользователь щелкает на ссылке внутри текста;
  •  Protected – отправляется, если пользователь пытается изменить защищенный текст;
  •  SelectionChanged – отправляется при изменении выборки.

Упражнение 1. Создать приложение для работы с текстовыми документами.

1. Создать форму, как показано на рисунке. Для текстового поля TextBoxSize установить значение свойства  Text = 10.

2. Выполнить привязку элементов управления (свойство Anchor) в соответствии с приведенной ниже таблицей.

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

Значение свойства Anchor

buttonLoad, buttonSave

Bottom

RichTextBoxText

Top, Left, Bottom, Right

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

Top

3. Установить значение свойства MinimumSize, равным Size.

4. Создать обработчик события Click для кнопки buttonBold:

private void Bold_Click(object sender, EventArgs e)

{  Font oldFont;

 Font newFont;

 // получение шрифта, используемого в выбранном тексте

 oldFont=RichTextBoxText.SelectionFont;

 // если в настоящий момент используется полужирный стиль,

 // нужно удалить форматирование

 if (oldFont.Bold)

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

 else

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

 // вставка нового шрифта и возвращение фокуса элементу

 // управления RichTextBoxText

 RichTextBoxText.SelectionFont = newFont;

 RichTextBoxText.Focus();

}

5. Аналогичные обработчики создать для кнопок Underline и Italic.

6. Для кнопки buttonCenter добавить код:

private void Center_Click(object sender, EventArgs e)

{ if (RichTextBoxText.SelectionAlignment = = HorizontalAlignment.Center)

   RichTextBoxText.SelectionAlignment = HorizontalAlignment.Left;

 else

RichTextBoxText.SelectionAlignment = HorizontalAlignment.Center;

   RichTextBoxText.Focus();  }

Примечание: свойство HorizontalAlignment представляет собой перечисление, которое может принимать значения Left (по левому краю), Right (по правому краю), Center (по центру), Justify (по ширине), NotSet (без выравнивания).

7. Добавить для текстового поля TextBoxSize два обработчика: KeyPress (для обнаружения момента завершения ввода значениея пользователем)  и Validated (для управления вводом), а также создать вспомогательный метод ApplyTextSize, принимающий строку, содержащую размер шрифта.

private void TextBoxSize_KeyPress(object sender, KeyPressEventArgs e)

{ // удаление всех символов, не являющихся цыфрами,

 //символом забоя или клавишей <Enter>

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

 {

   e.Handled = true;

 }

 // применение размера, если пользователь нажал <Enter>

 else if (e.KeyChar == 13)

 { TextBox txt = (TextBox)sender;

   if (txt.Text.Length > 0) ApplyTextSize(txt.Text);

     e.Handled = true;

   RichTextBoxText.Focus();

 }

}

private void TextBoxSize_Validated(object sender, EventArgs e)

{

 TextBox txt = (TextBox)sender;

 ApplyTextSize(txt.Text);

 RichTextBoxText.Focus();

}

private void ApplyTextSize(string textSize)

{ // преобразование текста в плавающий

 float newSize = Single.Parse(textSize);

 FontFamily currentFontFamily;

 Font newFont;

 // создание нового шрифта этого же семейства, но с новым размером

 currentFontFamily = RichTextBoxText.SelectionFont.FontFamily;

 newFont = new Font(currentFontFamily, newSize);

 // установка нового шрифта в качестве выбранного текста

 RichTextBoxText.SelectionFont = newFont;

}

8. Добавить обработчик события LinkClicked (форматирование гиперссылок и переход по ним) для текстового поля:

private void RichTextBoxText_LinkClicked(object sender, LinkClickedEventArgs e)

{  System.Diagnostics.Process.Start(e.LinkText);  }

9. Добавить обработчики событий для кнопок загрузки и сохранения текста в файл:

private void Load_Click(object sender, EventArgs e)

{ // загрузка файла в текстовое поле

 try

 {

   RichTextBoxText.LoadFile("text.rtf");

 }

 catch (System.IO.FileNotFoundException)

 { // файла для загрузки нет

   MessageBox.Show("Файл не найден!");

 }

}

private void Save_Click(object sender, EventArgs e)

{ //сохранение текста

 try

 {

   RichTextBoxText.SaveFile("text.rtf");

 }

 catch (System.Exception err)

 {

   MessageBox.Show(err.Message);

 }

}

10. Добавить окно сохранения результатов работы, которое будет появляться перед закрытием приложения:

PAGE   \* MERGEFORMAT4




1. бремя белого человека цивилизуя порабощенные народы
2. реферату- Деякі аспекти розвитку міжнародних відносин УкраїниРозділ- Політологія Деякі аспекти розвитку м
3. тематизация искусственных коронок.
4. английски о достопримечательностях современного Лондона
5. Методические рекомендации
6. а Ю.Л. Менцин Введение Лондонское королевское общество для развития знаний о природе было основано в 1660
7. Денежные системы и их развитие в процессе формирования электронной финансовой системы РК
8. нибудь идею понаблюдайте внимательно за их реакцией в момент когда вы будете это делать и вы увидите много
9. Оренбургский государственный университет Факультет экономики и права Кафедра бухгалтерского учета
10. Тобольская государственная социальнопедагогическая академия им