如何将RichTextBox中的文本及其格式复制到wordpad或webbrowser?从RichTextBox复制文本及其格式
回答
就像复制纯文本一样,您可以使用Clipboard.SetText
method。这将清除Windows剪贴板的当前内容并向其添加指定的文本。
要复制带格式的文本,您需要使用接受TextDataFormat
参数的overload of that method。这允许您指定要复制到剪贴板的文本的格式。在这种情况下,您将指定TextDataFormat.Rtf
,或者包含富文本格式数据的文本。
当然,为了达到这个目的,您还必须使用RichTextBox
控件的Rtf
property来提取RTF格式的文本。您不能使用常规Text
property,因为它不包含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
参数的Clipboard.GetText
method。例如:
' 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 &“这个坏男孩是第二个。”) 而且这个工作正常。希望对你有帮助!
这是一个更好的解决方案(基于this answer):
var dto = new DataObject();
dto.SetText(richTextBox.SelectedRtf, TextDataFormat.Rtf);
//Since notepad sux and doesn't understand \n,
//we need to fix it replacing by Environment.NewLine (\r\n)
string unformattedText = richTextBox.SelectedText.Replace("\n", Environment.NewLine);
dto.SetText(unformattedText, TextDataFormat.UnicodeText);
Clipboard.Clear();
Clipboard.SetDataObject(dto);
我用这个简单的事件处理程序(使用RichTextBox中的内置的复制/粘贴的方法),以避免检查TextDataFormat:
private void mnuCopy_Click(object sender, EventArgs e)
{
txtRichtext.Copy();
}
private void mnuPaste_Click(object sender, EventArgs e)
{
txtRichtext.Paste();
}
- 1. 将文本从RichTextBox复制到WebBrowser
- 2. 从RichTextBox复制选定的文本
- 3. Wpf RichTextBox复制textstyle文本
- 4. 从richtextbox保存格式化文本
- 5. C#复制功能richtextbox与格式
- 6. C#WPF RichTextBox限制文本格式为可见文本
- 7. 使用类表格将文本框数据复制到RichTextBox中
- 8. 如何格式化RichTextBox中的文本?
- 9. RichTextBox中的多个文本格式
- 10. WPF RichTextBox - 输入文本的格式
- 11. 将富文本格式字符串复制为格式文本
- 12. 如何从vb6以unicode格式从richtextbox获取文本
- 13. 从其他网站随机复制文本格式的最佳方式?
- 14. 复制文件及其全部历史
- 15. 文本框十进制格式修复
- 16. zeroclipboard - 复制和格式化文本
- 17. 复制/粘贴文本格式quill.js
- 18. 从RichTextBox控件获取格式化文本
- 19. 是否可以将其他应用程序的格式复制到Silverlight RichTextBox中?
- 20. 如何从文档中复制的文本中删除格式
- 21. richtextbox格式
- 22. 如何制作RichTextBox文本?
- 23. C#WindowsForms RichTextBox在大文本中选择文本格式
- 24. 如何从richTextbox中读取文本并保留文本的格式?
- 25. 将文本格式从字符串应用到richtextbox中的FlowDocument的文本
- 26. 将富文本格式的文本从2个RichTextbox添加到C中的另一个RichTextBox中#
- 27. 将文件夹及其文件复制到其他位置
- 28. 如何从网页上复制此文本格式?
- 29. 从URI格式路径复制文件到本地路径
- 30. VBA POWERPOINT:复制文本与从PowerPoint格式字
它也会复制RichTextBox中的图像,我该如何将它转换为html? – 2011-02-05 07:03:28