我在 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 指的是第二条评论而不是第一条。
用户添加第二个评论,范围与第一个相同(当没有突出显示时,光标所在的词将被选中)
谁能解释这里发生了什么?我是不是遗漏了什么,或者这是互操作中的错误?