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

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

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
ЛАБОРАТОРНАЯ РАБОТА № 6.
Создание SDI приложения
Цель: формирование навыков использования компонента RichTextBox при создании SDI приложений.
Необходимые теоретические сведения
Компонент RichTextBox используется для получения текстовых сообщений от пользователя, а также служит для отображения и ввода форматированного текста (например, полужирного, подчеркнутого, курсивного). Это достигается посредством использования стандарта форматированного текста RTF (расширенный текстовый формат).
Основные свойства элемента RichTextBox:
События класса RichTextBox:
Упражнение 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