1

我有一些文本文件,我的程序将通过查找用户请求的特定行来解析这些文件,以便在运行时显示到 RichTextBox 中。在每一行中都有某些注释,我希望以红色而不是正常的前景色显示,在任何给定时间,只有一行“圣经”会显示在 RichTextBox 中。有没有办法在文本文件中添加格式,当在 RichTextBox 中显示特定行时,它会用颜色显示你想要的注释?

即...我有一本圣经经文:

耶稣转过身来,看见他们跟在后面,就对他们说:“你们要什么?”他们对他说,拉比,(也就是说,正被解释,主人,)你住在哪里?

我想要“你在寻求什么?”这句话。在 RichTextBox 中显示时为红色。问题当然是程序不知道哪些评论需要显示为红色并且用户无法控制它,所以它需要是可以从正在读入的文件中处理的东西。

文本文件的格式基本上是:

(约翰福音2:2)耶稣和他的门徒都蒙召参加婚礼。

(约翰福音2:3)他们要酒的时候,耶稣的母亲对他说,他们没有酒了。

(约翰福音 2:4)耶稣对她说,女人,我与你有什么相干?我的时间还没有到来。

(约翰福音2:5)他母亲对仆人说,他对你们说什么,你们就做什么。

有没有人有任何想法我可以如何实现这一目标?在上面的文本示例中,如果将第三行(约翰福音 2:4)显示到 RichTextBox 中,我想要注释“女人,我与你有什么关系?我的时间还没有到来。” 以红色显示。

基本上,我试图创建一个随机经文生成器,以在程序运行时显示随机经文,我想给它红色字母格式来表示耶稣的话。

4

1 回答 1

2

下面是一个富文本框的 RTF 属性如何查找您的文本的示例:

{\rtf1{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}
{\colortbl ;\red255\green0\blue0;}
\f0\fs24 Then Jesus turned, and saw them following, and saith unto them, \cf1 What seek ye?\cf0  They said unto him, Rabbi, (which is to say, being interpreted, Master,) where dwellest thou?\par
}

请注意颜色表 (colortbl) 中定义的颜色,该颜色在索引 1 处为红色。我有标签 \cf1。默认 \cf0 为黑色。

所以使用我给出的相同标题(你可以更改字体)。

您可以使用正则表达式替换\...\\cf1 ...\cf0. 作为替代方案,您可以使用{\cf1 ...}

然后将结果(整个 rtf)分配给富文本框的 rtf 属性。如果您需要任何帮助,请告诉我。

顺便说一句,如果你可以用一些不同的标签来标记红色字母会更好,例如<Red>...<red><R>...<r>而不是\...\为了避免问题。

于 2013-10-27T20:19:56.393 回答