Элемент управления 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, просмотров: 278.