更新: 2008 年 7 月
| 适用于 | 
|---|
| 本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。 文档级项目 
 应用程序级项目 
 有关更多信息,请参见按应用程序和项目类型提供的功能。 | 
Bookmark 控件是一个具有唯一名称且可以公开事件的书签,可以绑定到数据。可以将书签用作占位符以在 Microsoft Office Word 文档中标记项或位置。
Bookmark 控件是 Microsoft.Office.Interop.Word.Bookmark 对象和 Microsoft.Office.Interop.Word.Range 对象的组合。向文档添加书签时,Visual Studio Tools for Office 会创建一个书签对象,可以直接针对该对象编程,而不必遍历 Word 对象模型。
在文档级项目中,您可以在设计时或运行时向文档中添加 Bookmark 控件。从 Visual Studio 2008 Service Pack 1 (SP1) 开始,您还可以使用 Word 2007 的应用程序级外接程序在运行时向任何打开的文档中添加 Bookmark 控件。有关更多信息,请参见如何:向 Word 文档添加书签控件。
将数据绑定到控件
Bookmark 控件支持简单数据绑定。应该使用 DataBindings 属性将书签绑定到数据源。书签的默认数据绑定属性是 Text 属性。
如果更新绑定数据集内的数据,则 Bookmark 控件会反映所做的更改。
在文档级项目中,还可以使用“数据源”窗口将数据绑定到书签。有关更多信息,请参见如何:用对象中的数据填充文档。
格式设置
可应用于 Microsoft.Office.Interop.Word.Bookmark 的格式设置也可应用于 Bookmark 控件。其中包括字体、缩进、间距、编号和样式。
向书签分配文本
Microsoft.Office.Interop.Word.Bookmark 对象和 Bookmark 控件之间的另一个差异在于将文本分配给书签时其行为方式的不同。如果向零长度 Microsoft.Office.Interop.Word.Bookmark 分配文本,文本将被追加到书签右侧,且书签的长度保持为零。但是,如果向零长度 Bookmark 分配文本,文本将被插入到书签中,且书签的长度将扩展到所插入字符的总数。
此外,Visual Studio Tools for Office 会将 Bookmark.Text 属性添加到 Bookmark 控件。这与书签的 Range 上可用的 Range.Text 属性不同。
| Text 属性 | 说明 | 
|---|---|
| 使用此属性可以在书签内显示文本,并使书签保留在文档中。向书签分配文本会扩展书签范围,但不会删除书签。 例如,Bookmark1.Text = "Hello world" 将文本插入书签中,且使书签保持原样。 | |
| 使用此属性可在书签位置处显示文本,并自动删除该书签。例如,Bookmark1.Range.Text = "Hello world" 将文本插入书签中,并删除该书签。 | 
在设计时重命名控件
在文档级项目中,将 Bookmark 控件从“工具箱”拖到文档中时,Visual Studio Tools for Office 会自动为该控件生成一个名称。可以在“属性”窗口中更改控件的名称。
重叠控件
书签控件可以相互重叠;也就是说,多个书签可以共享相同文本。向其中一个重叠书签分配新文本时,该书签将仅包含新文本,并且书签之间将不再重叠。此时,另一个书签将仅包含未在原来的重叠书签之间共享的文本。
下表说明句子“This is sample text.”如何由两个重叠书签共享。
| 书签 | 文本 | 
|---|---|
| 重叠书签 | [this is {sample] text.} | 
| Bookmark1 | This is sample | 
| Bookmark2 | sample text. | 
如果向 Bookmark1 分配新文本“This is replacement.”,则书签不再重叠并且 Bookmark2 仅保留原来不属于 Bookmark1 的文本。
| 书签 | 文本 | 
|---|---|
| 两个单独的书签 | [this is replacement]{ text.} | 
| Bookmark1 | This is replacement | 
| Bookmark2 | text. | 
当一个书签完全包含在另一个书签中时,更改外部书签的文本不会删除内部书签。但是,内部书签将变成空书签并移动到外部书签的末尾。下表说明句子“This is sample text.”如何由包含于另一个书签中的书签共享。
| 书签 | 文本 | 
|---|---|
| 重叠书签 | [this is {sample} text.] | 
| Bookmark1 | This is sample text. | 
| Bookmark2 | sample | 
如果向 Bookmark1 分配新文本“This is replacement.”,则书签不再重叠并且 Bookmark2 变成位于 Bookmark1 末尾的空书签。
| 书签 | 文本 | 
|---|---|
| 两个单独的书签 | [this is replacement.]{} | 
| Bookmark1 | This is replacement. | 
| Bookmark2 | <空> | 
事件
以下事件可用于 Bookmark 控件:
请参见
任务
概念
其他资源
修订记录
| 日期 | 修订历史记录 | 原因 | 
|---|---|---|
| 2008 年 7 月 | 增加了有关在应用程序级项目中使用书签控件的信息。 | SP1 功能更改。 |