2009-06-26 3 views
6

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

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

Спасибо!

ответ

8

Чтобы получить доступ к линии на элементах управления TextBox используется свойство 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++; 
} 
+0

, который получает меня линии; но как я могу сказать RichtTextBox выделить строки, которые я хочу, например? Я могу только установить SelectedText по номеру символа, а не по строке ...? –

1

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

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

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

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

и т. Д., Чтобы отформатировать линии.

Смежные вопросы