.net 从RichTextBox复制文本及其格式
如何将RichTextBox中的文本及其格式复制到写字板或webbrowser?与复制纯文本一样,您可以使用。这将清除Windows剪贴板的当前内容并向其中添加指定的文本 要复制格式化文本,需要使用接受参数的。它允许您指定要复制到剪贴板的文本的格式。在本例中,您可以指定.net 从RichTextBox复制文本及其格式,.net,vb.net,winforms,richtextbox,clipboard,.net,Vb.net,Winforms,Richtextbox,Clipboard,如何将RichTextBox中的文本及其格式复制到写字板或webbrowser?与复制纯文本一样,您可以使用。这将清除Windows剪贴板的当前内容并向其中添加指定的文本 要复制格式化文本,需要使用接受参数的。它允许您指定要复制到剪贴板的文本的格式。在本例中,您可以指定TextDataFormat.Rtf,或由富文本格式数据组成的文本 当然,要使其工作,还必须使用RichTextBox控件的。无法使用常规格式,因为它不包含RTF格式信息。正如文件警告的那样: Text属性不返回有关应用于Rich
TextDataFormat.Rtf
,或由富文本格式数据组成的文本
当然,要使其工作,还必须使用RichTextBox
控件的。无法使用常规格式,因为它不包含RTF格式信息。正如文件警告的那样:
Text
属性不返回有关应用于RichTextBox
内容的格式的任何信息。要获取RTF代码,请使用RTF
属性
示例代码:
' Get the text from your rich text box
Dim textContents As String = myRichTextBox.Rtf
' Copy the text to the clipboard
Clipboard.SetText(textContents, TextDataFormat.Rtf)
一旦文本在剪贴板上,您(或应用程序的用户)可以将其粘贴到任何您喜欢的地方。要以编程方式粘贴文本,您将使用还接受
TextDataFormat
参数的。例如:
' Verify that the clipboard contains text
If (Clipboard.ContainsText(TextDataFormat.Rtf)) Then
' Paste the text contained on the clipboard into a DIFFERENT RichTextBox
myOtherRichTextBox.Rtf = Clipboard.GetText(TextDataFormat.Rtf)
End If
我有一个类似的情况,我从我的VB.net应用程序中复制,并尝试了\r\n、\r\n、vbCrLf、Chr(13)、Chr(10)、Chr(13)和Chr(10)等。如果我粘贴到Word或写字板中,则会出现新行,但不会粘贴到记事本中。最后,我使用了ControlChars.NewLine,在那里我一直在使用vbCrLf,它起了作用。因此,总结一下: Clipboard.SetText(“这是一行”&ControlChars.Newline&“这个坏男孩是第二行。”) 这是正确的。希望它对你有用 这是一个更好的解决方案(基于):
我使用这个简单的事件处理程序(使用richtextbox的内置复制/粘贴方法)来避免检查TextDataFormat:
private void mnuCopy_Click(object sender, EventArgs e)
{
txtRichtext.Copy();
}
private void mnuPaste_Click(object sender, EventArgs e)
{
txtRichtext.Paste();
}
它还会复制RichTextBox中的图像吗?如何将其转换为html?@abcd:我不知道它是否会复制图像。我想不会,但你得试试看。目前,您所处的环境比我更适合测试这一点。如果您想使用HTML格式,请将
TextDataFormat.Rtf
更改为TextDataFormat.HTML
@cody谢谢,我会尝试并报告back@cody它不起作用,当我转换成rtf时,它看起来乱七八糟,所以当它被导出到html时,它乱七八糟的图像会恢复到正常图像?@abcd:嗯,为了完整起见,如果您只是想将RichTextBox
的内容保存到文件中,您可以完全绕过剪贴板。使用RichTextBox
的。您可以选择不同的格式。你会找到一份工作的。这就是我想知道你最终想要完成什么的意思,因为可能有更好的方法。
private void mnuCopy_Click(object sender, EventArgs e)
{
txtRichtext.Copy();
}
private void mnuPaste_Click(object sender, EventArgs e)
{
txtRichtext.Paste();
}