2015-04-01 72 views
1

这是我到目前为止有:如何将超链接插入到Outlook Appointment的RTFBODY属性中?

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); 

的代码运行正常,并增加了“点击Heere”的文字,但没有附加的文字链接。我想我很接近,但我对RTF格式不太了解。任何帮助将不胜感激!

回答

1

你读回rtb.Text(纯文本),而不是RTF:

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

谢谢!你是对的,用rtb.Rtf解决了这个问题。你知道有没有办法在RTF超链接中使用非http/s协议?该代码现在对http://google.com正常工作,但我需要它打开如下链接:h323:// 12345678。当使用它时,它不可点击。有任何想法吗?再次感谢! – 2015-04-02 14:01:41

+0

据我所知,协议列表是硬编码的... – 2015-04-02 15:12:45

+0

我其实只是发布了另一个问题,询问是否有可能,也许有人知道解决方法。如果只有Appointments有一个HTMLBody - 这会容易得多。再次感谢您的时间和帮助! – 2015-04-02 15:14:53

1

看看在What is the RTF syntax for a hyperlink?线程描述完全一样的问题:

RTF场语法是包括在specification,并使用超链接指令会给你一个链接。这个question显示了HYPERLINK指令的用法。

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

相关问题