从RichTextBox复制所选文本

我在网上搜索过但我找不到从RichTextBox复制/剪切/粘贴所选文本的方法。

即使MSDN也没有答案。 他们提供的代码不起作用: Copy()似乎只适用于TextBoxes,而不是RichTextBoxes。

如果您使用的是.NET 3.0及更高版本,则可以始终使用Clipboard.SetText()

我发现当我想要richTextBox中的所有东西而不必先选择所有内容或者我需要更改字符串时,使用剪贴板很有用:

 string text = "Summary:" + Environment.NewLine + this.richTextBoxSummary.Text; Clipboard.SetText(text); 

如果我复制这个方法:

 Clipboard.SetText(richTextBox1.SelectedRtf, TextDataFormat.Rtf); 

我无法粘贴到记事本

如果我复制这个方法:

 Clipboard.SetText(richTextBox1.SelectedText, TextDataFormat.UnicodeText); 

它在Word和记事本中工作,但在没有格式化的情况下插入单词

 richTextBox1.Copy(); 

在Word和记事本中工作,但我无法修改字符串值。

如何在剪贴板中复制正常格式的字符串?

PS我找到了

 DataObject dto = new DataObject(); dto.SetText(mesrtf, TextDataFormat.Rtf); dto.SetText(mes, TextDataFormat.UnicodeText); Clipboard.Clear(); Clipboard.SetDataObject(dto); 

有用

richTextBox1.SelectAll();

richTextBox1.Copy();

/ *

选择框中的所有txt并在将其再次粘贴到记事本中时保留格式

* /

在wpf中

 richTextBox1.Copy(); richTextBox1.Paste();