Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从RichTextBox复制文本及其格式_.net_Vb.net_Winforms_Richtextbox_Clipboard - Fatal编程技术网

.net 从RichTextBox复制文本及其格式

.net 从RichTextBox复制文本及其格式,.net,vb.net,winforms,richtextbox,clipboard,.net,Vb.net,Winforms,Richtextbox,Clipboard,如何将RichTextBox中的文本及其格式复制到写字板或webbrowser?与复制纯文本一样,您可以使用。这将清除Windows剪贴板的当前内容并向其中添加指定的文本 要复制格式化文本,需要使用接受参数的。它允许您指定要复制到剪贴板的文本的格式。在本例中,您可以指定TextDataFormat.Rtf,或由富文本格式数据组成的文本 当然,要使其工作,还必须使用RichTextBox控件的。无法使用常规格式,因为它不包含RTF格式信息。正如文件警告的那样: Text属性不返回有关应用于Rich

如何将RichTextBox中的文本及其格式复制到写字板或webbrowser?

与复制纯文本一样,您可以使用。这将清除Windows剪贴板的当前内容并向其中添加指定的文本

要复制格式化文本,需要使用接受参数的。它允许您指定要复制到剪贴板的文本的格式。在本例中,您可以指定
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();
}