如何复制带有链接的Richtextbox内容?

时间:2019-05-16 12:24:09

标签: c# winforms hyperlink richtextbox linklabel

我想复制格式相同的内容和超链接的Richtextbox内容。但是它被复制为没有超链接的纯文本。我在richtextbox中使用linklabel。

private void Bttn_copy_Click(object sender, EventArgs e)
    {
        richtxtbx_email.SelectAll();

        Clipboard.Clear();
        Clipboard.SetText(richtxtbx_email.SelectedRtf, TextDataFormat.Rtf);
    }

然后尝试:

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

您能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

超链接只是在编辑器中使用超文本链接的一种方式,该链接能够将其呈现为此类。

从文本框中复制文本时,只能复制纯文本本身。

请注意,RichTextBox.SelectedRtf是字符串类型的属性。

答案 1 :(得分:0)

RichTextBox不像HTML那样保存超链接。

它仅检测特定文本是否看起来像链接,并自动将其涂成蓝色,添加下划线并检测用户是否单击它。

如果将RichTextBox.DetectUrls Property设置为true,则会这样做。

如果您正在将数据复制到新的RichTextBox,而在另一个RichTextBox中看不到检测到的链接,则只需在复制文本之前将此属性设置为true。

另一方面,如果您需要真实的链接,以便文本是一回事,而链接是另一回事,请查看here