如何在RichTextBox中更改指定行的格式

6
我有一个包含大量文本行的Winforms RichTextBox(例如2 MB文本文件),希望能够以编程方式更改指定行的格式,例如突出显示它们。
我该如何处理这些行,而不是字符? RichTextBox是否是此类任务的最佳控件,还是有其他替代方案? 我尝试过Infragistics UltraFormattedTextEditor,但它至少比显示文本慢了几个数量级,因此对于我的较长文件没有用。
谢谢!
2个回答

8

要访问文本框控件上的行,您可以使用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++;
}

那个代码可以获取到我想要的行数;但是我如何告诉RichtTextBox去高亮显示我想要的行,例如?我只能通过字符编号设置SelectedText,而不能通过行数...? - Joel in Gö

1
好的,我会记录我找到的解决方案:像Luis所说的那样使用richTextBox.Lines来获取行,然后...
richTextBox.GetFirstCharIndexFromLine(int line)
richTextBox.Select(int start, int length)

选择相关的行,然后

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

等等,等等。来格式化这些行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接