向 Word 文档添加书签控件

在文档级项目中,你可以在设计时或在运行时向项目中的文档添加 Bookmark 控件。 在 VSTO 外接程序项目中,可以在运行时向任何打开的文档添加 Bookmark 控件。

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

本主题介绍了以下任务:

在设计时添加书签控件

可通过几种方式在设计时向文档级项目中的文档添加 Bookmark 控件:

  • 从 Visual Studio “工具箱”

    你可以将 Bookmark 控件从 “工具箱” 拖动到文档中。 如果你已在使用 “工具箱” 向文档添加 Windows 窗体控件,则你可能会想要选择这种方式。

  • 从 Word 内。

    你可以以添加本机书签相同的方式向你的文档添加 Bookmark 控件。 用这种方式添加的优点是你可以在创建控件时对其命名。

  • “数据源” 窗口。

    你可以从 Bookmark “数据源” 窗口将 控件拖动到你的文档中。 当你想要在同一时间将控件绑定到数据时,这一方式会非常有用。 可以用从 “数据源” 窗口添加 Windows 窗体控件相同的方式添加主机控件。 有关详细信息,请参阅数据绑定和Windows 窗体

    注意

    以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 IDE

若要从工具箱向文档添加书签控件

  1. 打开 “工具箱” 并单击 “Word 控件” 选项卡。

  2. Bookmark 控件拖动到文档。

    “添加书签” 对话框随即出现。

  3. 选择文本或你想要包括在书签中的其他项。

  4. 单击“确定”。

    如果不希望保留默认书签名称,可以在 “属性” 窗口中更改名称。

若要在 Word 中向文档添加书签控件

  1. 在 Visual Studio 设计器中托管的文档中,将光标置于要添加书签的位置,或选择要将书签括起来的文本。

  2. 在功能区 “插入” 选项卡上的 “链接” 组中,单击 “书签” 按钮。

  3. “书签” 对话框中,键入新书签的名称,然后单击 “添加”

在文档级项目中的运行时添加书签控件

你可以通过使用项目中 Bookmark 类的 Controls 属性的方法在运行时以编程方式向文档添加 ThisDocument 控件。 有两种方法重载可用于按以下方式添加 Bookmark 控件:

  • 在指定范围内添加 Bookmark

  • 添加基于文档中的本机书签的 Bookmark (即, Bookmark)。

    文档关闭时,动态创建的 Bookmark 控件将不保留在文档中。 但是,本机 Bookmark 保留在文档中。 在下次打开该文档时,你可以重新创建基于本机书签的 Bookmark 。 有关详细信息,请参阅在运行时向办公室文档添加控件。

以编程方式向文档添加书签控件

  1. 在项目中的 ThisDocument_Startup 事件处理程序中,插入以下代码以将 Bookmark 控件添加到文档中的第一个段落。

    Microsoft.Office.Tools.Word.Bookmark firstParagraph;
    firstParagraph = this.Controls.AddBookmark(this.Paragraphs[1].Range,
        "FirstParagraph");
    

    注意

    如果你想要从现有的 Bookmark 创建 Bookmark控件,请使用 AddBookmark 方法并传入现有的 Bookmark

在 VSTO 外接程序项目中的运行时添加书签控件

你可以通过使用 VSTO 外接程序在运行时以编程方式将 Bookmark 控件添加到任何打开的文档。 若要执行此操作,生成基于打开的文档的 Document 主机项,然后使用此主机项的 Controls 属性的方法。 有两种方法重载可用于按以下方式添加 Bookmark 控件:

  • 在指定范围内添加 Bookmark

  • 添加基于文档中的本机书签的 Bookmark (即, Bookmark)。

    文档关闭时,动态创建的 Bookmark 控件将不保留在文档中。 但是,本机 Bookmark 保留在文档中。 在下次打开该文档时,你可以重新创建基于本机书签的 Bookmark 。 有关详细信息,请参阅在办公室文档中保留动态控件。

    有关在 VSTO 外接程序项目中生成主机项的详细信息,请参阅 在运行时在 VSTO 外接程序中扩展 Word 文档和 Excel 工作簿。

若要在指定范围内添加书签控件

  1. 使用 AddBookmark 方法,并在你想要添加 Range 的地方传入 Bookmark

    下面的代码示例将一个新 Bookmark 添加到活动文档的开头。 若要使用此示例,在 Word VSTO 外接程序项目中运行来自 ThisAddIn_Startup 事件处理程序的代码。

    Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
    
    Bookmark firstParagraph = extendedDocument.Controls.AddBookmark(
        extendedDocument.Paragraphs[1].Range, "FirstParagraph");
    

若要添加基于本机书签控件的书签控件

  1. 使用 AddBookmark 方法,并传入你想要用作新 Bookmark 的基础的现有的 Bookmark

    下面的代码示例创建一个新 Bookmark ,它基于活动文档中的第一个 Bookmark 。 若要使用此示例,在 Word VSTO 外接程序项目中运行来自 ThisAddIn_Startup 事件处理程序的代码。

    if (this.Application.ActiveDocument.Bookmarks.Count > 0)
    {
        object index = 1;
        Word.Bookmark firstBookmark = this.Application.ActiveDocument.Bookmarks.get_Item(ref index);
    
    
         Document extendedDocument = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    
        Bookmark vstoBookmark = extendedDocument.Controls.AddBookmark(
                firstBookmark, "VSTOBookmark");
    }