【问题标题】:How to insert hyperlink into RTFBODY property of Outlook Appointment?如何在 Outlook Appointment 的 RTFBODY 属性中插入超链接?
【发布时间】:2015-04-02 06:43:42
【问题描述】:

这是我目前所拥有的:

RichTextBox rtb = new RichTextBox();
rtb.Rtf = System.Text.Encoding.UTF8.GetString(item.RTFBody);
rtb.Select(rtb.TextLength, 0);
rtb.SelectedRtf = @"{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard {\par} {\field{\*\fldinst HYPERLINK ""http://www.google.com/""}{\fldrslt Click Here}}";

item.RTFBody = System.Text.Encoding.UTF8.GetBytes(rtb.Text);

代码运行良好,并添加了“单击此处”文本,但文本没有附加链接。我想我很接近,但我对 RTF 格式了解不多。任何帮助将不胜感激!

【问题讨论】:

    标签: c# outlook-addin rtf


    【解决方案1】:

    您正在回读 rtb.Text(纯文本),而不是 Rtf:

    item.RTFBody = System.Text.Encoding.UTF8.GetBytes(rtb.Rtf);
    

    【讨论】:

    • 谢谢!你是对的,使用 rtb.Rtf 解决了这个问题。你知道有没有办法在 RTF 超链接中使用非 http/s 协议?该代码现在对google.com 工作正常,但我需要它来打开这样的链接:h323://12345678。使用它时,它是不可点击的。有任何想法吗?再次感谢!
    • 我实际上刚刚发布了另一个问题,询问是否可能,也许有人知道解决方法。如果只有约会有一个 HTMLBody - 这会容易得多。再次感谢您的时间和帮助!
    【解决方案2】:

    查看What is the RTF syntax for a hyperlink? 线程,它描述了完全相同的问题:

    specification 中介绍了 RTF 字段语法,使用 HYPERLINK 指令将为您提供链接。这个question 显示了 HYPERLINK 指令的用法。

    我还建议保存 Outlook 项目并重新打开检查器窗口。希望它会有所帮助。

    【讨论】:

      猜你喜欢
      • 2016-06-23
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2017-05-03
      • 2011-10-15
      相关资源
      最近更新 更多