如何在RTF格式的富文本框中插入超链接

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

我正在尝试在WinForms中插入到RTF文本框的超链接(使用.NET Framework 4.6.1)。我这样做的方式是询问要插入的URL和文本,然后将其附加到rtb(我知道最好用选定的文本来做,然后只询问URL)。

但是当我尝试附加RTF时,好像根本没有附加。我添加它的方式如下:

   string rtf = $"{{\\field{{\\*\\fldinst HYPERLINK \"{url}\"}}{{\\fldrslt {urlText}}}}}";
   richTb.Rtf += rtf;

我也尝试附加到richTb.SelectionRtf,但是得到了相同的结果。我错过了什么吗?

c# winforms rtf
1个回答
1
投票

您必须插入Hyperlink之类的超链接而不是文本:

Paragraph parx = new Paragraph();
Run run1 = new Run("Text preceeding the hyperlink.");
Run run2 = new Run("Text following the hyperlink.");
Run run3 = new Run("Link Text.");

Hyperlink hyperl = new Hyperlink(run3);
hyperl.NavigateUri = new Uri("http://search.msn.com");

parx.Inlines.Add(run1);
parx.Inlines.Add(hyperl);
parx.Inlines.Add(run2);

Update:向RichTextBox添加段落应该看起来像

richTextBox1.IsDocumentEnabled = true;
richTextBox1.Document.Blocks.Add(parx);
© www.soinside.com 2019 - 2024. All rights reserved.