我想在Windows Forms .Net应用程序中附加两个富文本框的内容;说:stringText = richtextbox1.Rtf + richtextbox2.Rtf;
stringText
应该是RTF文本,它应该有\ rtf行一次,连接富文本。
剪贴板不在此范围内。
另外,我很好奇,如果我们可以将它们拆分。
答案 0 :(得分:17)
试试这个:
richTextBoxTarget.Select(richTextBoxTarget.TextLength, 0);
richTextBoxTarget.SelectedRtf = richTextBoxSource.Rtf;
这将richTextBoxSource的内容合并到richTextBoxTarget的末尾。它只使用一个\ rtf标签自动创建有效的RTF
要取消合并,请使用Select
和SelectedRtf
。这里唯一的要求是,你需要知道你想要拆分的位置。
答案 1 :(得分:1)
我知道这是一个古老的问题,但它似乎很常见。因此,我要添加我的答案,因为标记的答案使RTF连接,但每次都会给出一个额外的新行。
这将是:
RichTextBoxSource.Select(0,RichTextBoxSource.TextLength);
RichTextBoxTarget.SelectedRtf = richTextBoxSource.SelectedRtf;
它很简单,工作正常。希望它会帮助某人:)
答案 2 :(得分:0)
不确定这是否有用,但是上面的代码重新格式化为扩展方法。 这让你说:
textBox.AppendRtf(someRtfString)
可轻松与RichTextBox
类的AppendText()
方法匹配。
''' <summary>
''' Appends the provided RTF-formatted string to the provided <see cref="RichTextBox"/>.
''' </summary>
<Extension()> _
Public Sub AppendRtf(ByVal rtbTextBox As RichTextBox, ByVal strRtf As String)
rtbTextBox.Select(rtbTextBox.TextLength, 0)
rtbTextBox.SelectedRtf = strRtf
End Sub
答案 3 :(得分:0)
因为我无法对Pawel anwser发表评论,除了他的代码,我必须补充一点:
RichTextBoxSource.Select(0,RichTextBoxSource.TextLength);
RichTextBoxTarget.SelectedRtf = richTextBoxSource.SelectedRtf;
如果您希望新文本始终位于顶部
,则应添加RichTextBoxTarget.Select(0,0);
或者如果您希望它始终位于底部
RichTextBoxTarget.Select(RichTextBoxTarget.TextLength,0);
因此,即使目标richtextbox可点击,您也可以像Daniel回答一样控制位置。