Будь умным!


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

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

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


ЛАБОРАТОРНАЯ РАБОТА № 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. Ребуция
7. Лабораторная работа 9 Основы проектирования ЛВС
8. Майкопский государственный технологический университет Факультет Фармацевтический Кафедра
9. технічна революція що розгорнулася в середині століття такі основні події що визначили хід історичного ро
10. Подтверждение соответствия тяжелого товарного бетона класса В15
11. Символы ~ многозначны и могли бы быть дополнены значениями но не в этом контексте.html
12. ПРОФИЛАКТИКА КОНТАКТНОЙ И ИМПЛАНТАЦИОННОЙ ИНФЕКЦИИ
13. Тригер спрацьовує автоматично при виконанні над таблицею команд SQL INSERT UPDTE або DELETE і запускає функцію
14. ДОСЛІДНИЙ ІНСТИТУТ ПРИВАТНОГО ПРАВА І ПІДПРИЄМНИЦТВА АКАДЕМІЇ ПРАВОВИХ НАУК УКРАЇНИ Міхно Ольга Іва
15. водянок. Из всего списка наибольший интерес представляет топовая модель H110i сменившая устаревшую H100i.
16. Освоение Амазонии.html
17. е годы во время испытаний самолетов с крылом прикрепленным к нижней части фюзеляжа тип низкоплан конструк
18. Комплекс маркетинговых коммуникаций
19. К созданию степного природного парка Страна городов в Челябинской области
20. эмоциональный интеллект как воплощение принципа развития активной познающей целостной личности