将2个RichTextbox中的格式丰富的文本追加到C#中的另一个RichTextBox中

时间:2014-07-25 11:00:15

标签: c#-4.0 richtextbox rtf

我有3个RichTextBox:richTextBox1,richTextBox2和richTextBox3。

我运行应用程序并在文本框1和2中输入文本。

因此,richTextBox1的文本为“Test”,而richTextBox2的文本为“ing”。

我现在想要将该文本附加到另一个richTextBox中(保留任何格式,如粗体,下划线等等)

所以我尝试以下代码:

richTextBox3.Rtf = richTextBox1.Rtf + richTextBox2.Rtf;

这不会导致任何错误,但我只从richTextBox1获取文本。所以我得到了“测试”。

那么如何在保持格式的同时复制2个RichTextBox的内容?

TA

2 个答案:

答案 0 :(得分:3)

你会想要这样做:

richTextBox3.Rtf = richTextBox1.Rtf
richTextBox3.Select(richTextBox3.TextLength, 0);
richTextBox3.SelectedRtf = richTextBox2.Rtf;

这应该可以解决问题。

答案 1 :(得分:2)

<强>用法:

richTextBox3.Rtf = MergeRtfTexts(new RichTextBox[] { richTextBox1, richTextBox2});

RTF合并功能:

    private string MergeRtfTexts(RichTextBox[] SourceRtbBoxes)
    {
        using (RichTextBox temp = new RichTextBox())
        {
            foreach (RichTextBox rtbSource in SourceRtbBoxes)
            {
                rtbSource.SelectAll();
                //move the end
                temp.Select(temp.TextLength, 0);
                //append the rtf
                temp.SelectedRtf = rtbSource.SelectedRtf;
            }
            return temp.Rtf;
        }
    }