VSTO注释RCW指向错误的注释

问题描述 投票:0回答:0

我在 Word VSTO 中遇到了一个非常奇怪的行为。我不知道为什么会发生或如何避免它。我可以用下面的代码来演示它。如果设置了

_comment
,则在 MessageBox 中显示其内容。如果没有设置
_comment
,则设置为文档中的第一条评论。

    private void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel)
    {
        if(_comment != null)
        {
            MessageBox.Show(_comment.Range.Text);
        }
        else
        {
            var comments = Application.ActiveDocument.Range().Comments;
            if (comments.Count > 0)
            {
                _comment = comments[1];
            }
        }
    }

奇怪的行为发生在用户添加与第一条范围完全相同的第二条评论时。当发生这种情况时,_comment 指的是第二条评论而不是第一条。

_comment 设置为一些评论:

用户添加第二个评论,范围与第一个相同(当没有突出显示时,光标所在的词将被选中)

_comment 现在指的是第二条评论,出于某种原因:

谁能解释这里发生了什么?我是不是遗漏了什么,或者这是互操作中的错误?

com vsto ms-office office-interop word-interop
© www.soinside.com 2019 - 2024. All rights reserved.