Как изменить формат указанных строк в RichTextBox - PullRequest
6 голосов
/ 26 июня 2009

У меня есть winforms RichTextBox, содержащий много строк текста (например, 2 МБ текстовых файлов), и я хотел бы программно изменить форматирование указанных строк, например, выделив их.

Как я могу адресовать строки, а не символы? RichTextBox - даже лучший элемент управления для такого рода вещей, или есть другая альтернатива? Я пробовал InfraGistics UltraFormattedTextEditor, но он отображал текст как минимум на несколько порядков медленнее, поэтому для моих более длинных файлов это не годится.

Спасибо!

Ответы [ 2 ]

8 голосов
/ 26 июня 2009

Для доступа к строкам в элементах управления текстового поля вы используете свойство Lines

richTextBox.Lines

Оттуда вы можете перебирать строки и работать с теми, которые хотите изменить.

Редактировать: Согласен, я пропустил выделенную часть (+1 за ответ на свой вопрос). Включая рабочий код:

int lineCounter = 0;
foreach(string line in richTextBox1.Lines)
{
   //add conditional statement if not selecting all the lines
   richTextBox.Select(richTextBox.GetFirstCharIndexFromLine(lineCounter), line.Length);
   richTextBox.SelectionColor = Color.Red;
   lineCounter++;
}
1 голос
/ 29 июня 2009

ОК, я документирую найденное мной решение: используя richTextBox.Lines, чтобы получить строки, как говорит Луис, затем

richTextBox.GetFirstCharIndexFromLine(int line)
richTextBox.Select(int start, int length)

, чтобы выбрать соответствующие строки, затем

richTextBox.SelectionColor...
richTextBox.SelectionBackground...

и т.д.. и т.д., чтобы отформатировать строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...