Bookmark 控件

Bookmark 控件是一个具有唯一名称且用于公开事件的书签,可以绑定到数据。 可以将书签用作占位符以在 Microsoft Office Word 文档中标记项或位置。 Bookmark 控件是 Bookmark 对象和 Range 对象的组合。

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

在文档级项目中,你可以在设计时或运行时向文档中添加 Bookmark 控件。 在 VSTO 外接程序项目中,可以在运行时向任何打开的文档添加 Bookmark 控件。 有关详细信息,请参阅 “如何:向 Word 文档添加书签控件”。

将数据绑定到控件

Bookmark 控件支持简单数据绑定。 应该使用 DataBindings 属性将书签绑定到数据源。 书签的默认数据绑定属性是 Text 属性。

如果绑定数据集中的数据已更新,控件 Bookmark 将显示更改。

在文档级项目中,还可以使用“数据源” 窗口将数据绑定到书签。 有关详细信息,请参阅 “如何:使用对象中的数据填充文档”。

格式化

可应用于 Bookmark 的格式设置也可应用于 Bookmark 控件。 此格式包括字体、缩进、间距、编号和样式。

将文本分配给书签

Microsoft.Office.Interop.Word.Bookmark 对象和 Microsoft.Office.Tools.Word.Bookmark 控件之间的另一个差异在于将文本分配给书签时其行为方式的不同。 如果向零长度 Microsoft.Office.Interop.Word.Bookmark分配文本,文本将被追加到书签右侧,且书签的长度保持为零。 但是,如果向零长度 Microsoft.Office.Tools.Word.Bookmark分配文本,文本将被插入到书签中,且书签的长度将扩展到所插入字符的总数。

Microsoft.Office.Tools.Word.Bookmark 控件还具有 Bookmark.Text 属性。 此属性不同于Range.TextBookmark.Range控件的属性Microsoft.Office.Tools.Word.BookmarkBookmark.Range对象的属性Microsoft.Office.Interop.Word.Bookmark

Text 属性 说明
Bookmark.Text 使用此属性可以在书签内显示文本,并使书签保留在文档中。 向书签分配文本会扩展书签范围,但不会删除书签。

例如, Bookmark1.Text = "Hello world" 将文本插入书签中,且使书签保持原样。
Range.Text 使用此属性可在书签位置处显示文本,并自动删除该书签。 例如, Bookmark1.Range.Text = "Hello world" 将文本插入书签中,并删除该书签。

在设计时重命名控件

在文档级项目中,将 Bookmark 控件从“工具箱” 拖到文档中时,Visual Studio 会自动为该控件生成一个名称。 可以在“属性” 窗口中更改控件的名称。

重叠控件

书签控件可以相互重叠。 同一文本可以由多个书签共享。 向其中一个重叠书签分配新文本时,它仅包含新文本,书签不再重叠。 另一个书签现在仅包含原始重叠书签之间未共享的文本。

下表显示了“这是示例文本”的句子如何由两个重叠书签共享:

书签 文本
重叠书签 [this is {sample] text.}
书签 1 This is sample
书签 2 sample text.

如果将新文本“这是替换”。分配给 Bookmark1,则书签不会重叠,Bookmark2 仅保留最初不是 Bookmark1 的一部分的文本。

书签 文本
两个单独的书签 [this is replacement]{ text.}
书签 1 This is replacement
书签 2 文本。

如果更改包含另一个书签的书签的文本,则不会删除内部书签。 但是,内部书签将成为空书签,并移动到外部书签的末尾。

下表显示了“这是示例文本”的句子如何由另一个书签中包含的书签共享:

书签 文本
重叠书签 [this is {sample} text.]
书签 1 This is sample text.
书签 2 sample

如果将新文本“这是替换的”。分配给 Bookmark1,则书签不再重叠,Bookmark2 将成为位于 Bookmark1 末尾的空书签。

书签 文本
两个单独的书签 [这是替换项。]{}
书签 1 This is replacement.
书签 2 <empty>

事件

以下事件可用于 Bookmark 控件: