以编程方式折叠文档中的范围或选择

如果你在使用 RangeSelection 对象,则可能要在插入文本之前更改对插入点的选择,以避免覆盖现有文本。 和RangeSelection对象都有一个 Collapse 方法,该方法使用WdCollapseDirection枚举值:

  • wdCollapseStart 会将所选内容折叠到所选内容的开头。 如果未指定枚举值,则这是默认值。

  • wdCollapseEnd 会将所选内容折叠到所选内容的结尾。

    适用于: 本主题中的信息适用于 Word 的文档级项目和 VSTO 外接程序项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。

折叠范围并插入新文本

  1. 创建一个包含文档中第一个段落的 Range 对象。

    下面的代码示例可用于文档级自定义项。

    Word.Range rng = this.Paragraphs[1].Range;
    

    以下代码示例可用于 VSTO 外接程序。 此代码运用了活动文档。

    Word.Range rng = this.Application.ActiveDocument.Paragraphs[1].Range;
    
  2. 使用 wdCollapseStart 枚举值折叠范围。

    rng.Collapse(Word.WdCollapseDirection.wdCollapseStart);
    
  3. 插入新文本。

    rng.Text = " New Text ";
    
  4. 选择 Range

    rng.Select();
    

    如果使用 wdCollapseEnd 枚举值,则文本会在后续段落开头处插入。

    rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
    

你可能预计插入新句子是在段落标记之前插入它,但情况并非如此,因为原始范围包含段落标记。

文档级自定义示例

在文档级自定义项中折叠范围

  1. 下面的示例显示针对文档级自定项的完整方法。 若要使用此代码,请从项目中的 ThisDocument 类运行它。

    Word.Range rng = this.Paragraphs[1].Range; 
    
    rng.Collapse(Word.WdCollapseDirection.wdCollapseStart); 
    
    rng.Text = " New Text ";
    rng.Select();
    

VSTO 外接程序示例

在 VSTO 外接程序中折叠区域

  1. 以下示例演示 VSTO 外接程序的完整方法。 若要使用此代码,请从项目中的 ThisAddIn 类运行它。

    Word.Range rng = this.Application.ActiveDocument.Paragraphs[1].Range;
    
    rng.Collapse(Word.WdCollapseDirection.wdCollapseStart);
    
    rng.Text = " New Text ";
    rng.Select();