Элемент управления 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,
Style.Bold);
richTextBox1.SelectionColor = Color.Red;
Font-
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);
}
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.