Ms word 在Winword加载项中创建范围对象上的形状

Ms word 在Winword加载项中创建范围对象上的形状,ms-word,vsto,add-in,Ms Word,Vsto,Add In,我试图在winword addin中创建给定范围对象上的形状 目前我只能得到范围开始的左侧和顶部,但我找不到该范围的宽度和高度 这就是我要做的,以获得顶部/左侧: float left= r.get_Information(Word.WdInformation.wdHorizontalPositionRelativeToPage); float top= r.get_Information(Word.WdInformation.wdVert

我试图在winword addin中创建给定范围对象上的形状

目前我只能得到范围开始的左侧和顶部,但我找不到该范围的宽度和高度

这就是我要做的,以获得顶部/左侧:

                float left= r.get_Information(Word.WdInformation.wdHorizontalPositionRelativeToPage);
            float top= r.get_Information(Word.WdInformation.wdVerticalPositionRelativeToPage);
要添加形状,我将在保持范围的选择对象上执行类似操作:

Sel.Document.Shapes.AddShape((int)Office.MsoAutoShapeType.msoShapeRectangle, 
                left, 
                top,
                100, 
                100, r )

除此之外,每当该范围发生变化(改变其内容)时,我希望得到通知。

要检测内容变化,有一个选择变化事件。如果选择发生了变化,那么您可以进行前后对比,以检测发生了什么变化。我不知道当我从paragrah添加/删除元素时会触发另一个waySelection更改事件?当您选择不同的元素时,它不会触发吗?如果文档中的选择发生更改,事件将触发。也许这对您没有帮助,但是由于Interop似乎无法在本地为该范围提供宽度和高度,也许我们的看法是错误的。你能详细谈谈这个问题吗?如果没有我们自己的方法来获得宽度和高度,也许我们可以想出我们自己的方法。我只是想用一个形状来突出文本的一部分。如果文本已更改,我希望突出显示部分将扩展并覆盖新文本(只要它位于选择部分边框中)