我正在尝试在WinForms中插入到RTF文本框的超链接(使用.NET Framework 4.6.1)。我这样做的方式是询问要插入的URL和文本,然后将其附加到rtb(我知道最好用选定的文本来做,然后只询问URL)。
但是当我尝试附加RTF时,好像根本没有附加。我添加它的方式如下:
string rtf = $"{{\\field{{\\*\\fldinst HYPERLINK \"{url}\"}}{{\\fldrslt {urlText}}}}}";
richTb.Rtf += rtf;
我也尝试附加到richTb.SelectionRtf
,但是得到了相同的结果。我错过了什么吗?
您必须插入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);