C# 如何将剪贴板中的格式化文本粘贴到 RichTextBox

问题描述 投票:0回答:4

我向 Richboxtext 添加了上下文菜单,只有一个功能“粘贴”。什么代码会将我的剪贴板内容(例如从 Microsoft Word 复制)粘贴到 richboxtext 表单?我尝试过:

    private void PasteToolStripMenuItem_Click_1(object sender, EventArgs e)
    {
        richTextBox1.Text = Clipboard.GetText();
    }

但它粘贴非格式化文本。如何粘贴带有格式的文本?

c# winforms richtextbox paste formatted
4个回答
6
投票

明白了!

只需指定格式:

richTextBox1.Text = Clipboard.GetText(TextDataFormat.Rtf);

更新

这将帮助您从 MS Word 获取格式化文本(仅限文本)


5
投票
DataFormats.Format myFormat = DataFormats.GetFormat(DataFormats.Html);

if(richTextBox1.CanPaste(myFormat))
{
    richTextBox1.Paste(myFormat);
    return true;
}

您应该更改 Richtextbox 允许的 Dataformats.Html 类型。

这里是数据格式列表:http://msdn.microsoft.com/en-us/library/system.windows.forms.dataformats.aspx


0
投票

尝试:

richTextBox1.selectedRtf=Clipboard.GetData(DataFormats.Rtf).ToString();

0
投票

Amritpal 的解决方案是唯一适合我的版本(SelectedRtf 中的大写 S):

richTextBox1.SelectedRtf = Clipboard.GetData(DataFormats.Rtf).ToString();

© www.soinside.com 2019 - 2024. All rights reserved.