在RichtextBox中加粗

我一直在研究我的richtextbox,但是我遇到了一些奇怪的事情…我想在每行粗线上创建第一个单词

使用此代码:

RichTextBox bold = richTextBox1; foreach (string line in bold.Lines) { string name = line.Split(' ')[0]; int srt = bold.Find(name); bold.Select(srt, name.Length); bold.SelectionFont = new Font(bold.Font, FontStyle.Bold); } 

但由于某种原因,一些行被跳过。 从我注意到它取决于行开头的单词

例如Name:被跳过但Name1:没问题,ProcessId,VirtualSize和WorkingSetSize也是如此。

例子http://sofzh.miximages.com/c%23/4lov91.png

如果需要更多解释,请告诉我。

这些行添加如下

 richTextBox1.Text += "Name: "+ queryObj["Name"] + Environment.NewLine; 

在将所有内容添加到richtextbox之后调用使所有第一个单词变为粗体的函数。

线……

 int srt = bold.Find(name); 

…正在寻找第一个出现该行的单词。 如果您查看未设置为粗体的单词,那么您将看到它们都在富文本框中更早出现。

我的richtextbox没有选择所有出现的情况,如果它们没有以正确的顺序发送到我的粗体函数; 所以我的修复包括在开始文本选择之前检查start(srt)是否大于0。 它是这样的:

 foreach (string line in bold.Lines) { int srt = bold.Find(name); if (srt > 0) { bold.Select(srt, name.Length); bold.SelectionFont = new System.Drawing.Font(bold.Font, FontStyle.Bold); } } 

而现在它总是会选择第一次出现。

PS: name是一个stringboldRichTextBox