C# 格式化富文本框中的文本

C# 格式化富文本框中的文本,c#,winforms,richtextbox,C#,Winforms,Richtextbox,如何在富文本框中设置文本格式,如下所示 2010年11月2日下午5:15-亚当:第二天又增加了一份测试笔记 十一月 2010年11月2日下午5:14-Z_-kas:测试笔记。 阶段更改为:N Enq-发送报价 2010年11月2日下午5时12分-user32:第二天又增加了一份测试笔记 十一月 谢谢正如其他人所说,可能与前面的问题重复。但是,请参阅下面的代码片段。您不必为了更改其格式而获取追加文本的长度,只需在追加之前设置格式即可。如果文本框中有大量文本,这(我认为)会提供更好的性能 只要用户在

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

2010年11月2日下午5:15-亚当:第二天又增加了一份测试笔记 十一月

2010年11月2日下午5:14-Z_-kas:测试笔记。 阶段更改为:N Enq-发送报价

2010年11月2日下午5时12分-user32:第二天又增加了一份测试笔记 十一月


谢谢

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

只要用户在文本框中没有选择,这就行了,然后奇怪的事情就会发生,我无法解释。也许其他人能启发我们?中提出的解决方案也会出现同样的问题。我替换了“:”用户名后面的内容,只是为了让我的代码示例更容易使用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:

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

可能的重复