我在网上搜索过但我找不到复制/剪切/粘贴RichTextBox
中所选文字的方法。
即使MSDN也没有答案。他们提供的代码不起作用:Copy()
似乎只适用于TextBoxes,而不是RichTextBox。
答案 0 :(得分:9)
如果我复制这个方法:
Clipboard.SetText(richTextBox1.SelectedRtf, TextDataFormat.Rtf);
我无法粘贴到记事本
如果我复制这个方法:
Clipboard.SetText(richTextBox1.SelectedText, TextDataFormat.UnicodeText);
它在Word和记事本中工作,但在单词中插入而没有格式化
richTextBox1.Copy();
在Word和记事本中工作,但我无法修改字符串值。
如何在剪贴板中复制正常格式化的字符串?
P.S。我找到了
DataObject dto = new DataObject();
dto.SetText(mesrtf, TextDataFormat.Rtf);
dto.SetText(mes, TextDataFormat.UnicodeText);
Clipboard.Clear();
Clipboard.SetDataObject(dto);
它有效
答案 1 :(得分:5)
如果您使用的是.NET 3.0及更高版本,则可以始终使用Clipboard.SetText()
我发现当我想要richTextBox中的所有东西而不必先选择所有内容或需要更改字符串时,使用剪贴板很有用:
string text = "Summary:" + Environment.NewLine + this.richTextBoxSummary.Text;
Clipboard.SetText(text);
答案 2 :(得分:0)
richTextBox1.SelectAll();
richTextBox1.Copy();
/ *
选择框中的所有txt,并在将其再次粘贴到记事本中时保留格式
* /
答案 3 :(得分:0)
VB.NET代码(同时支持格式文本和纯文本)
剪切
Private Sub CutToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CutToolStripMenuItem.Click
Try
If RichTextBox1.SelectedText <> "" Then
Clipboard.SetData(DataFormats.Rtf,RichTextBox1.SelectedRtf)
RichTextBox1.SelectedRtf = ""
Else
MsgBox("No item is selected to cut", MsgBoxStyle.Information, "Cut")
End If
Catch ex As Exception
MsgBox("Can't cut the selected item", MsgBoxStyle.Critical, "Cut")
End Try
End Sub
复制
Private Sub CopyToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles CopyToolStripMenuItem.Click
Try
If RichTextBox1.SelectedText <> "" Then
Clipboard.SetData(DataFormats.Rtf,RichTextBox1.SelectedRtf)
Else
MsgBox("No item is selected to copy", MsgBoxStyle.Information, "Copy")
End If
Catch ex As Exception
MsgBox("Can't copy the selected item", MsgBoxStyle.Critical, "Copy")
End Try
End Sub
粘贴
Private Sub PasteToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles PasteToolStripMenuItem.Click
Try
If Clipboard.ContainsText(TextDataFormat.Rtf) Then
RichTextBox1.SelectedRtf = Clipboard.GetData(DataFormats.Rtf).ToString()
ElseIf Clipboard.ContainsText(TextDataFormat.Text) Then
RichTextBox1.SelectedText = Clipboard.GetData(DataFormats.Text).ToString()
Else
MsgBox("Clipboard is not contained with the valid text format ", MsgBoxStyle.Information, "Paste")
End If
Catch ex As Exception
MsgBox("Can't paste the item", MsgBoxStyle.Critical, "Paste")
End Try
End Sub
答案 4 :(得分:0)
尝试一下:
复制
Clipboard.SetText(richTextBox1.Text);
粘贴
richTextBox1.Paste();
剪切
richTextBox1.Cut();
然后我们就把它简化了,因为如果他/她想复制,粘贴,剪切文本,用户可以自行选择,这样就不用说任何简单的参数了,或者用户会怎么笑让我复制文本就这些了
答案 5 :(得分:-2)
在wpf中
richTextBox1.Copy();
richTextBox1.Paste();