演练:为 Word 创建第一个文档级自定义
本介绍性演练演示了如何创建 Microsoft Office Word 的文档级自定义项。 仅在特定文档处于打开状态时,才可提供你在这种解决方案中创建的功能。 不能使用文档级自定义项进行应用程序范围的更改,例如在任何文档处于打开状态时显示新“功能区”选项卡。
适用于: 本主题中的信息适用于 Word 的文档级项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。
本演练阐释了以下任务:
创建 Word 文档项目。
将文本添加到 Visual Studio 设计器中托管的文档。
编写代码,使用 Word 对象模型在自定义文档时打开时向其中添加文本。
生成并运行项目,以对其进行测试。
清理项目,以便从开发计算机删除不必要的生成文件和安全设置。
注意
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 IDE。
先决条件
你需要满足以下条件才能完成本演练:
Visual Studio 的一个版本,其中包含 Microsoft Office 开发人员工具。 有关详细信息,请参阅配置计算机以开发办公室解决方案。
Microsoft Word
创建项目
在 Visual Studio 中创建新的 Word 文档项目
启动 Visual Studio。
在 “文件” 菜单上,指向 “新建” ,然后单击 “项目” 。
在 “创建新项目 ”对话框中,选择 Word VSTO 文档 项目。
注意
还可以通过在“创建新项目”对话框顶部的“搜索”文本框中键入办公室产品的名称来搜索模板。 例如,键入 Excel 将显示 Excel 的所有项目模板。 还可以通过选择“项目类型”下拉列表中的办公室来筛选模板,以便仅显示办公室的模板列表。 有关详细信息,请参阅 在 Visual Studio 中创建新项目。
单击“下一步”。
在“配置新项目”对话框的“名称”框中键入 FirstWorkbookCustomization,然后单击“创建”。
从 Visual Studio Tools for 办公室 项目向导中选择“创建新文档”,然后单击“确定”。
- Visual Studio 创建 FirstDocumentCustomization 项目,并将 FirstDocumentCustomization 文档和 ThisDocument 代码文件添加到项目中。 FirstDocumentCustomization 文档在设计器中自动打开。
在设计器中关闭并重新打开文档
如果开发项目时有意或无意关闭了设计器中的文档,则可以重新打开它。
若要关闭并重新打开设计器中的文档
通过单击设计器窗口的 “关闭 ”按钮(X)关闭文档。
在解决方案资源管理器中,右键单击 ThisDocument 代码文件,然后单击“视图设计器”。
- 或 -
在解决方案资源管理器中,双击 ThisDocument 代码文件。
向设计器中的文档添加文本
可以通过修改在设计器中打开的文档来设计自定义的用户界面 (UI)。 例如,可以添加文本、表格或 Word 控件。 有关如何使用设计器的详细信息,请参阅 Visual Studio 环境中的办公室项目。
使用设计器将文本添加到文档
在已在设计器中打开的文档中键入以下文本。
此文本是使用设计器添加的。
以编程方式向文档添加文本
接下来,将代码添加到 ThisDocument 代码文件。 新代码使用 Word 对象模型向文档添加文本的第二个段落。 默认情况下,ThisDocument 代码文件包含以下生成的代码:
ThisDocument
类的部分定义,用于表示文档的编程模型,并提供对 Word 对象模型的访问权限。 有关详细信息,请参阅 文档宿主项 和 Word 对象模型概述。ThisDocument
类的其余部分是在隐藏代码文件中定义的,不应修改该代码文件。ThisDocument_Startup
和ThisDocument_Shutdown
事件处理程序。 将在打开或关闭文档时调用这些事件处理程序。 使用这些事件处理程序,可在打开文档时对其进行初始化,并在关闭文档时清理自定义项所使用的资源。 有关详细信息,请参阅办公室项目中的事件。
若要使用代码向文档添加文本的第二个段落
在解决方案资源管理器中,右键单击 ThisDocument,然后单击“查看代码”。
将在 Visual Studio 中打开代码文件。
将
ThisDocument_Startup
事件处理程序替换为以下代码。 当打开文档时,此代码会将文本第二个段落添加到文档中。private void ThisDocument_Startup(object sender, System.EventArgs e) { this.Paragraphs[1].Range.InsertParagraphAfter(); this.Paragraphs[2].Range.Text = "This text was added by using code."; }
注意
此代码使用索引值 1 来访问 Paragraphs 属性的第一个段落。 尽管 Visual Basic 和 Visual C# 使用从 0 开始的数组,但 Word 对象模型中大多数集合的数组下限都是 1。 有关详细信息,请参阅办公室解决方案中的编写代码。
测试项目
测试文档
按 F5 生成并运行项目。
生成项目时,会将代码编译到与该文档相关联的程序集中。 Visual Studio 将该文档和程序集的副本放入项目的生成输出文件夹中,并将开发计算机上的安全设置配置为允许自定义项运行。 有关详细信息,请参阅生成办公室解决方案。
验证文档中具有以下文本。
此文本是使用设计器添加的。
This text was added by using code.
关闭文档。
清理项目
完成项目开发后,应删除生成输出文件夹中的文件和由生成过程创建的安全设置。
在开发计算机上清理已完成的项目
- 在 Visual Studio 中,在 “生成” 菜单上,单击 “清理解决方案”。
后续步骤
既然你已经创建了一个基本的 Word 文档级自定义项,你就可以从下面这些主题中了解有关如何开发自定义项的详细信息:
可在文档级自定义项中执行的常规编程任务: 对文档级自定义进行编程。
特定于 Word 文档级自定义项的编程任务: Word 解决方案。
使用 Word 的对象模型: Word 对象模型概述。
例如,通过将自定义选项卡添加到功能区或创建自己的操作窗格来自定义 Word 的 UI:办公室 UI 自定义。
使用 Visual Studio 中办公室解决方案提供的扩展 Word 对象来执行无法使用 Word 对象模型执行的任务(例如,在文档上托管托管控件并使用Windows 窗体数据绑定模型将数据绑定到数据):使用扩展对象自动执行 Word。
生成和调试 Word 的文档级自定义:生成办公室解决方案。
为 Word 部署文档级自定义:部署办公室解决方案。