Элемент управления RichTextBox
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Элемент управления RichTextBox обычно используется для предоставления возможностей изменения и отображения текста, схожих с возможностями текстовых редакторов, таких как Microsoft Word.

 

Элемент управления RichTextBox выполняет те же функции, что и элемент управления TextBox, но помимо этого он позволяет:

 ● отображать шрифты, цвета и ссылки,

 ● загружать текст и вложенные изображения из файлов,

 ● отменять и повторять операции редактирования, а также

 ● искать заданные символы.

 

Элемент управления RichTextBox, как и TextBox, позволяет отображать полосы прокрутки, однако в отличие от TextBox он по умолчанию отображает и горизонтальную, и вертикальную полосы прокрутки, а также поддерживает дополнительные параметры их настройки. Элемент управления RichTextBox содержит множество свойств, которые можно использовать при применении форматирования к любой части текста в элементе управления.

Перед тем как изменить форматирование текста, этот текст необходимо выделить. Только выделенному тексту можно назначить форматирование символов и абзацев.

 

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

 

Свойство SelectionFont позволяет выделять текст полужирным шрифтом или курсивом. Кроме того, с помощью этого свойства можно изменять размер и гарнитуру текста. Свойство SelectionColor позволяет изменять цвет текста.

Свойство SelectionBullet следует использовать для создания маркированных списков.

 

Настройка форматирования абзацев осуществляется также с помощью свойств SelectionIndent, SelectionRightIndent и SelectionHangingIndent.

 

В элементе управления RichTextBox можно отображать содержимое обычного текстового файла, файла текста в формате Юникода или файла формата RTF. Для этого вызывается метод LoadFile().

Метод LoadFile() также можно использовать для загрузки данных из потока.

С помощью метода SaveFile() можно сохранить текст в файле в заданном формате. Метод SaveFile() позволяет сохранять данные в открытый поток примерно так же, как метод LoadFile().

 

Пример. При нажатии кнопки btnOpenFile отображается диалоговое окно Открытия файла. Имя выбранного файла используется в методе richTextBox1.LoadFile().

 

private void btnOpenFile_Click(object sender, System.EventArgs e)

{

if(openFileDialog1.ShowDialog() == DialogResult.OK)

 

                   richTextBox1.LoadFile (openFileDialog1.FileName); // RTF

}

 

Пример

В следующем примере при обработке сообщения о загрузке формы элемент управления RichTextBox загрузит файл C:\MyDocument.RTF в элемент управления и осуществит поиск первого экземпляра слова «Текст».

После этого код изменит стиль, размер и цвет шрифта выделенного текста и сохранит изменения в новом файле C:\MyDocument2.RTF.

Ввод текста после слова «Текст» будет осуществляться с новыми параметрами.

 

private void Form1_Load (object sender, EventArgs e)

{

richTextBox1.LoadFile ("C:\\MyDocument.RTF");

richTextBox1.Find ( "Текст", RichTextBoxFinds.MatchCase);

 

richTextBox1.SelectionFont = new Font ("Verdana", 12,

                                                                                                                                     FontStyle.Bold);

richTextBox1.SelectionColor = Color.Red;

 

richTextBox1.SaveFile ("C:\\MyDocument2.RTF",

                                                                                    RichTextBoxStreamType.RichText);

}

 

Перечисление RichTextBoxStreamType:

Имя члена Описание
PlainText Поток открытого текста с пробелами вместо объектов OLE.
RichNoOleObjs Поток в формате RTF с пробелами вместо объектов OLE. Это значение действительно только для использования с методом SaveFile элемента управления RichTextBox.
RichText Поток в формате RTF.
TextTextOleObjs Поток открытого текста с текстовым представлением объектов OLE. Это значение действительно только для использования с методом SaveFile элемента управления RichTextBox.
UnicodePlainText Текст в формате Юникод. Поток текста с пробелами вместо объектов OLE.

Пусть в файле MyDocument.rtf хранится текст:

 

В следующем примере создается элемент управления RichTextBox, который загрузит файл RTF в элемент управления и осуществит поиск первого экземпляра слова «Текст».

После этого код изменит стиль, размер и цвет шрифта выделенного текста и сохранит изменения в исходном файле формата RTF корневой папки диска C.

 

Результат поиска слова «Текст»:


рис.7

 

Допишем текст до и после слова «Текст».

     
 


Рис.8

 

 

В следующем примере метод SaveFile() используется для указания того, что файл должен быть сохранен как текстовый файл в кодировке ASCII, а не в стандартном формате RTF.

 

SaveFileDialog saveFile1 = new SaveFileDialog();

 

saveFile1.DefaultExt = "*.rtf";

saveFile1.Filter = "RTF Files|*.rtf";

 

if(saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK

                                                            && saveFile1.FileName.Length > 0)

{

// Сохранить как текстовый файл в кодировке ASCII

richTextBox1.SaveFile (saveFile1.FileName,

                                                                          RichTextBoxStreamType.PlainText);

}

 



Добавление строк в конец

Осуществляется по аналогии с TextBox:

 

richTextBox1.AppendText (textBox1.SelectedText);

 

richTextBox1.Text += " Добавляемый текст";

 

Вместо \r\n достаточно \n:

richTextBox1.Text = "Строка 1\nстрока 2\n";

richTextBox1.Text += "строка 3\n";

 

Дата: 2019-02-02, просмотров: 249.