在富文本框中格式化文本

如何在富文本框中格式化文本,如下所示

02/11/2010 – 05:15 PM – Adam:另一个测试笔记于11月2日添加

02/11/2010 – 05:14 PM – Z_kas:测试笔记。 阶段变为:N Enq – 发送报价

02/11/2010 – 05:12 PM – user32: 11月2日增加了另一个测试笔记

谢谢

如其他人所说,可能与先前的问题重复。 不过,请参阅下面的代码段。 您不必获取附加文本的长度以更改其格式,只需在追加之前设置格式即可。 如果文本框中有大量文本,这(我认为)可以提供更好的性能。

只要用户在文本框中没有选择,这将起作用,然后会发生我无法解释的奇怪事情。 也许别人可以启发我们? 在WinForms RichTextBox中更改文本颜色时提出的解决方案也会出现同样的问题。 我替换了用户名之后的“:”,只是为了让我的代码示例更容易使用DateTime工作,这可以在“拆分”中轻松修改。

private void AddText(string text) { string[] str = text.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); if (str.Length == 2) { richTextBox1.DeselectAll(); richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Bold); richTextBox1.AppendText(Environment.NewLine + str[0] + ";"); richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Regular); richTextBox1.AppendText(str[1]); } // Else?? Well, do something else.. } 

电话:

  private void button1_Click(object sender, EventArgs e) { AddText(DateTime.Now.ToString() + " - Mike; Did something"); } 

另一种方法是使用rtf格式:

 richTextBox1.Rtf = @"{\rtf1\pc \b 02/11/2010 - 05:15 PM - Adam:\b0 Another test notes added on 2nd November \par \b 02/11/2010 - 05:14 PM - Z_kas:\b0 Test Notes. STAGE CHANGED TO: N Enq - Send Quote\par \b 02/11/2010 - 05:12 PM - user32:\b0 Another test notes added on 2nd November"; 

请参阅msdn: http : //msdn.microsoft.com/en-us/library/aa287595%28v=vs.71%29.aspx http://msdn.microsoft.com/en-us/library/aa140301.aspx# rtfspec_8

“\ b”启动文本的粗体部分,“\ b0”结束它。 “\ par”开始新的段落/行(最接近\ n)。