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

How insert multiple hyperlinks to one comment in MS WORD using C#?

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

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

在 Word 中向区域添加额外内容的技巧是使用 Range 对象。插入评论后,它就有一个范围。要将某些内容附加到范围的末尾,类似于在键入时处理选择,您需要 "collapse" 范围到其终点(如按右箭头键)。例如:

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 对象.然后循环创建超链接、折叠、分配文本以将一个超链接与下一个超链接分开,然后为下一个超链接再次折叠。