如果我复制一些不同格式的文本并将其粘贴到我的richtextbox中,那么我的意思是它的格式也会被复制。
无论如何我可以复制粘贴为纯文本吗? 顺便说一句,我的程序是在WinForm上的
感谢您的回答
答案 0 :(得分:5)
你必须使用WinForm RichTextBox
(不在UI中,只在代码中),即使你在WPF上,也要使用RTF转换为纯文本。在Copy事件中使用此方法。
C#代码:
private String ConvertRtfToText()
{
System.Windows.Forms.RichTextBox rtfBox = new System.Windows.Forms.RichTextBox();
rtfBox.Rtf = this.rtfData;
return rtfBox.Text;
}
VB.Net代码:
Private Function ConvertRtfToText() As String
Dim rtfBox As RichTextBox = New RichTextBox()
rtfBox.Rtf = Me.rtfData
Return rtfBox.Text
End Function
来源:http://msdn.microsoft.com/en-US/en-en/library/vstudio/cc488002.aspx
答案 1 :(得分:1)
我最近遇到了同样的问题。我确实想保留一些格式,即段落和换行符,但我要求删除所有添加的文本格式。
我在WPF工作,但RichTextBox
界面是相同的。我创建了一个按钮,允许用户选择一些文本并删除格式。这很简单,您只需要在ClearAllProperties()
对象上使用TextSelection
方法。
C#代码(WPF):
private void ClearFormat_Click(object sender, RoutedEventArgs e)
{
rtbText.Selection.ClearAllProperties();
}
答案 2 :(得分:0)
这是一个非常简单的解决方案,但也许不是超级优雅......
1)在表单中添加纯文本框并将其隐藏为
2)创建一个按钮来删除格式(或者你可以这样做
粘贴文字时自动)
3)在OnClick(或OnPaste)代码中,只需复制富文本中的文本
文本框控件到纯文本框控件然后复制文本
从纯文本框返回到富文本框控件(请参阅示例
下文)
private void btnRemoveFormatting_Click(object sender, EventArgs e)
{
txtPlainText.Text = txtRTF.Text;
txtRTF.Text = ""; // Required - this makes sure all formatting is gone
txtRTF.Text = txtPlainText.Text;
}