代码之家  ›  专栏  ›  技术社区  ›  Kashif

在富文本框中设置文本格式

  •  8
  • Kashif  · 技术社区  · 15 年前

    2010年11月2日-下午5:15-亚当: 另一个测试笔记添加在2号 十一月

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

    另一个测试笔记添加在2号

    谢谢

    2 回复  |  直到 15 年前
        1
  •  21
  •   Community Mohan Dere    9 年前

    如其他人所说,有可能与先前的问题重复。但是,请参阅下面的代码片段。你不需要得到你附加的文本的长度来改变它的格式,只要在你附加之前设置格式。如果你在文本框中有很多文本,这个(我认为)会有更好的性能。

    只要用户在文本框中没有选择,这将起作用,然后奇怪的事情就会发生,我无法解释。也许其他人能启发我们?同样的问题出现在 Change color of text within a WinForms RichTextBox

           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");
    
        }
    
        2
  •  13
  •   amalgamate    12 年前

    另一种方法是使用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)。

    推荐文章