【发布时间】:2020-08-10 18:24:11
【问题描述】:
我正在尝试使用富文本格式格式化富文本框中的超链接。多亏了这个answer,我可以得到基本的格式,例如使文本加粗。但是,我无法使 RTF 格式的超链接正常工作。我找到了一个制作 RTF 链接here 的示例。但是,当我尝试将其放入如下所示的富文本框中时,它会导致我的应用程序崩溃。关于我在这里缺少什么的任何建议?
string my_hyperlink_text = @"{\field{\*\fldinst HYPERLINK \"http://www.google.com/\"}{\fldrslt Google}}"
if (rtbControl is RichTextBox & rtbControl.Name == "name_of_control") // Making sure the control is a RichTextBox
{
RichTextBox rtb = rtbControl as RichTextBox;
rtb.Rtf = my_hyperlink_text;
}
【问题讨论】:
-
如果您只需要单个链接(而不是其他文本),请使用 LinkLabel。否则,您可能希望为此采用 native 方式:Links with arbitrary text in a RichTextBox。简单地插入一个链接可能看起来复杂,但这是您做一次,然后存储自定义控件以供将来使用的事情。此时,您正在破坏 RTF 文本,删除标题和第一段定义:您的 RTB 正在受到伤害。
-
富文本框不支持 RTF 格式的链接吗?还是我上面的 RTF 不正确?据我所知,富文本框应该支持 RTF 格式的超链接。
-
这对我来说不会崩溃:
richTextBox1.Rtf = "{\\rtf1\field{\\*\\fldinst HYPERLINK \"http://www.google.com/\"}{\\fldrslt Google}}"; -
虽然它不会导致应用程序崩溃,但使用上面的 RTF,富文本框会显示以下字符串:“ield[][]HYPERLINK "google.com/"[][]Google"。不完全是什么我在找。
标签: c# winforms vsto richtextbox rtf