问题描述
我正在尝试使用RTF格式在RTF框中格式化超链接。借助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;
}
解决方法
使rtfs正常工作的一种简单方法是用Microsoft Word编写文本,将其复制并粘贴到Wordpad,然后从那里另存为RTF。 需要绕开MS Word,因为写字板虽然在来自其他来源(例如剪贴板)的链接时会正确处理,但不支持在UI中输入链接。此外,MS Word会创建大量的rtf。
通过这种方式创建的rtf文件可以在任何文本编辑器中打开,并且可以在程序中用作字符串常量。
在您的情况下,我想前缀和颜色表可能会丢失并导致问题。
顺便说一句:写字板不过是Windows rtf控件的包装,即与您在代码中使用的控件相同。