如何使用C#在MS WORD中插入多个超链接到一个注释?

时间:2016-02-04 14:21:51

标签: c# .net ms-word interop

这是我的代码。我可以为每条评论插入一个超链接,但我希望在一条评论中插入多个超链接,但我不知道如何更改我的代码。

using Microsoft.Office.Interop.Word;

     public void addCommentsToDocument(object start, object end, Hyperlink[] comments)
            {
                Range range = document.Range(ref start, ref end);
                object missing = System.Reflection.Missing.Value;
                for (int i = 0; i < comments.Length; i++)
                {
                    object url = comments[i].url;
                    object text = comments[i].Text;
                    Comment var = document.Comments.Add(range, text);
                    document.Hyperlinks.Add(var.Range, ref url, ref missing, ref missing, ref text, ref missing);
                }
            }

1 个答案:

答案 0 :(得分:1)

向Word中的区域添加其他内容的技巧是使用Range对象。插入注释后,它会有一个范围。要将某些内容附加到范围的末尾,与在键入时使用选择类似,您需要&#34;折叠&#34;范围到其终点(如按右箭头键)。例如:

object oEnd = WdCollapseDirection.wdCollapseEnd;
Comment var = document.Comments.Add(range, text);
Range rng = var.Range;

document.Hyperlinks.Add(rng, ref url, ref missing, ref missing, ref text, ref missing);
rng.Collapse(ref oEnd);
rng.Text = ", ";
rng.Collapse(ref oEnd);

由于您希望在循环中使用它,因此最好在循环之前添加Comment对象 - Text参数是可选的,因此传递ref missing - 以及Comment.Range对象。然后循环创建超链接,折叠,分配文本以将一个超链接与下一个超链接分开,然后再次折叠以用于下一个超链接。