在富文本框中格式化文本

Kas*_*hif 8 c# richtextbox winforms

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

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日增加的另一个测试笔记

谢谢

小智 21

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

只要用户在文本框中没有选择,这将起作用,然后会发生我无法解释的奇怪事情.也许别人可以启发我们?在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..
    }
Run Code Online (Sandbox Code Playgroud)

电话:

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

    }
Run Code Online (Sandbox Code Playgroud)


ama*_*ate 13

另一种方法是使用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";
Run Code Online (Sandbox Code Playgroud)

请参阅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).