创建 Outlook 窗体区域

窗体区域可用于自定义 Microsoft Office Outlook 窗体。 Visual Studio 提供了高级工具,可使你更轻松地设计、开发和调试窗体区域。

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

本主题提供了下列信息:

使用窗体区域的优点

相较于传统的 Outlook 窗体开发,窗体区域提供了许多增强功能:

  • 自定义任何标准窗体的默认页。

  • 将多达 12 个额外页面添加到任何标准窗体。

  • 替换或增强任何标准窗体。

  • 在阅读窗格和检查器中显示自定义 UI。

    有关详细信息,请参阅 自定义窗体页和窗体区域

将 Outlook 窗体区域添加到项目

可以使用 “新建 Outlook 窗体区域 ”向导来设计新窗体区域或导入在 Outlook 中设计的窗体区域。 此外,如果有在其他 Outlook VSTO 外接程序项目中使用的窗体区域,则可以重新使用现有的窗体区域。

使用向导创建新的窗体区域

若要创建窗体区域,请将 Outlook 窗体区域项添加到 Outlook VSTO 外接程序项目。 这会启动 “新建 Outlook 窗体区域 ”向导。

使用向导来指示是要设计新的窗体区域还是导入在 Outlook 中设计的窗体区域。 有关设计新窗体区域的详细信息,请参阅 “使用窗体区域设计器”。 有关使用 Outlook 中设计的窗体区域的详细信息,请参阅 导入在 Outlook 中设计的窗体区域。

使用向导来指定要创建的窗体区域类型。 下表介绍每种窗体区域类型。

区域类型 说明
拆分 将窗体区域作为新页添加到 Outlook 窗体中。
相邻 将窗体区域附加到 Outlook 窗体的默认页的底部。
替代功能 将窗体区域作为替换 Outlook 窗体默认页的新页添加。
全部替换 使用窗体区域替换整个 Outlook 窗体。

也可使用向导来指定显示条件及选择要扩展的窗体类型。 有关详细信息,请参阅 How to: Add a form region to an Outlook Add-in project.

在向导中所做的选择将影响其他向导页中可用的选项。 例如,如果在“新建 Outlook 窗体区域”页面中选择“相邻”或“分隔”,则“提供描述性文本”中的“标题说明”字段不可用,并选择你的显示首选项页。 这是因为 Outlook 在显示相邻或独立的窗体区域时并不使用这些字段。

窗体区域文件

完成 “新建 Outlook 窗体区域 ”向导后,Visual Studio 会自动将以下文件添加到项目中:

  • 窗体区域代码文件。 此文件具有您在“添加新项”对话框中为 Outlook 窗体区域指定的名称。 向此文件添加用于处理窗体区域事件的代码。

  • 窗体区域设计器代码文件。 此文件包含窗体区域设计器生成的代码,不应直接对其进行编辑。

  • Outlook 窗体存储 (.ofs) 文件。

    注意

    如果导入在 Outlook 中设计的窗体区域,那么仅将此文件添加到项目。

窗体区域工厂类

窗体区域代码文件包含实现 IFormRegionFactory 接口的分部类。 这是窗体区域工厂类。 窗体区域工厂类负责创建窗体区域的新实例。

可以通过展开 窗体区域工厂 区域来查找此类。

新建 Outlook 窗体区域 ”向导向此类添加属性,这些属性指定窗体区域的内部名称和显示窗体区域的邮件类。 将文件添加到项目中后,可手动修改这些特性。

大部分窗体区域工厂类在窗体区域设计器文件中实现。 但是,FormRegionInitializing 事件处理程序在窗体区域代码文件中公开。 可使用此事件处理程序来指定 Outlook 是否应显示窗体区域。 有关详细信息,请参阅 “处理窗体区域事件”。

将现有窗体区域添加到项目

如果具有在其他 Outlook 项目中使用的 Outlook 窗体区域,可通过使用 “添加现有项” 对话框在当前 Outlook VSTO 外接程序项目中重新使用它。

现有窗体区域必须具有代码文件(.vb.cs);不能使用“添加现有项”对话框添加 Outlook 窗体存储 (.ofs) 文件。 但是,可通过导入 Outlook 窗体存储文件来创建新的窗体区域。 有关详细信息,请参阅 How to: Add a form region to an Outlook Add-in project.

使用窗体区域设计器

窗体区域设计器可帮助你设计窗体区域的布局和外观。 可以将托管控件拖到设计器的图面,双击控件以打开事件处理程序,并在“属性”窗口中设置属性

注意

可以在“属性”窗口中的“清单”节点下方找到影响窗体区域显示方式的属性。

仅当在“新建 Outlook 窗体区域向导”的“选择要创建窗体区域”页的“选择方式”中选择“新建窗体区域”时,窗体区域设计器才可用。

可通过三种方法打开窗体区域设计器:

  • 解决方案资源管理器中,双击窗体区域代码文件。

  • 解决方案资源管理器中,右键单击窗体区域代码文件,然后单击“视图设计器”。

  • 解决方案资源管理器中,选择窗体区域代码文件,然后在“视图”菜单上单击“设计器”。

    窗体区域设计器仅支持托管的控件。 不能添加本机 Outlook 控件。

导入在 Outlook 中设计的窗体区域

在 Outlook 中进行设计时,可向窗体区域添加本机 Outlook 控件。 本机 Outlook 控件使你能够在设计时绑定到 Outlook 数据。 但不能使用窗体区域设计器来添加托管的控件或更改窗体区域的设计。

可以使用“新建 Outlook 窗体区域”向导将窗体区域导入到 Outlook VSTO 外接程序项目中。 在“选择要如何创建窗体区域”页上,选择“导入 Outlook 窗体”存储(.ofs)文件。 然后,你可以浏览到 Outlook 窗体存储文件 (.ofs) 文件的位置。 (Outlook 将窗体区域保存为 .ofs 文件。

新建 Outlook 窗体区域 ”向导将 .ofs 文件复制到项目目录,并向窗体区域设计器文件添加控件引用。 然后可处理窗体区域代码文件中的控件事件。

若要处理 Visual Basic 项目中的事件,从代码编辑器顶部的方法名列表中选择一个事件。

若要处理 C# 项目中的事件,订阅 FormRegionShowing 方法中的控件事件。 有关详细信息,请参阅如何:订阅和取消订阅事件(C# 编程指南)。

可在窗体区域工厂类的 InitializeManifest 方法中更改窗体区域属性。

注意

若要导入窗体区域,进行的项目所面向的 Outlook 版本必须与开发计算机上安装的版本相同。 例如,如果已安装 Outlook 2010,则导入窗体区域将仅在使用 Outlook 2010 外接程序项目模板创建项目中工作。

更新导入的窗体区域设计

可以添加、删除或更改窗体区域上的控件。 执行此操作之前,请备份添加到窗体区域代码文件的所有代码。 然后,在 Outlook 中打开 .ofs 文件,修改窗体区域,然后保存更改。 使用“新建 Outlook 窗体区域”向导导入修改后的 .ofs 文件。 然后可将代码粘贴到新的窗体区域代码文件中。

将自定义代码添加到窗体区域

Microsoft.Office.Tools.Outlook 命名空间使你可以访问某些类,这些类表示窗体区域、显示窗体区域的 Outlook 项和其他有用项。 Outlook 窗体区域项会自动在项目中添加对此程序集的引用,并在窗体区域代码文件的顶部插入相应的 usingImports 语句。

可在 Microsoft.Office.Interop.Outlook 命名空间中使用类、方法和属性来完成大部分 Outlook 编程任务。 有关 Outlook 对象模型的详细信息,请参阅 Outlook 对象模型概述。 有关使用 Outlook 对象模型的典型任务的示例,请参阅 Outlook 解决方案

处理窗体区域事件

Outlook 窗体区域项会自动将以下三个事件处理程序添加到窗体区域代码文件中。

事件 说明
FormRegionInitializing 在初始化窗体区域之前发生。 可检查此事件处理程序中的条件以确定 Outlook 是否应显示窗体区域。 有关详细信息,请参阅 “如何:防止 Outlook 显示窗体区域”。
FormRegionShowing 在创建窗体区域的实例之后且在窗体区域显示之前发生。
FormRegionClosed 在窗体区域关闭之前发生。

生成项目

生成包含窗体区域的 Outlook VSTO 外接程序项目时,Visual Studio 会向注册表中添加以下信息:

  • 与一个或多个窗体区域关联的每个邮件类的键。

  • 每个窗体区域的项以及表示 Outlook VSTO 外接程序的名称的关联值。

    Outlook 使用此信息来加载窗体区域。

调试窗体区域

可以调试包含窗体区域的 Outlook VSTO 外接程序,就像调试其他 Visual Studio 项目一样。 启动 Visual Studio 调试器时,Visual Studio 会自动启动 Outlook。

若要查看窗体区域,必须打开适当的 Outlook 项。 例如,如果相邻的窗体区域附加到邮件项的底部,则打开邮件项。

部署窗体区域

将窗体区域与关联的 Outlook VSTO 外接程序一起自动部署。 因此,不必执行任何特殊的任务来部署窗体区域。 有关部署 VSTO 外接程序的详细信息,请参阅部署办公室解决方案

Title 说明
创建 Outlook 窗体区域的指南 提供有助于优化窗体区域和避免潜在问题的信息。
如何:将窗体区域添加到 Outlook 外接程序项目 演示如何使用“新建 Outlook 窗体区域”向导创建窗体区域以扩展标准或自定义Microsoft 办公室 Outlook 窗体
将窗体区域与 Outlook 邮件类相关联 说明如何通过将窗体区域与每个项的邮件类关联来指定显示窗体区域的 Microsoft Office Outlook 项。
演练:设计 Outlook 窗体区域 演示如何设计在联系人项目的检查器窗口中作为新页出现的自定义窗体区域。
演练:导入在 Outlook 中设计的窗体区域 演示如何在 Microsoft 办公室 Outlook 中设计窗体区域,然后使用“新建 Outlook 窗体区域”向导将窗体区域导入到 Outlook VSTO 外接程序项目中
在运行时访问窗体区域 介绍如何编写代码,以便显示、隐藏或修改窗体区域上的控件,以及如何使用户能够使用 Globals 类从项目的其他区域运行代码。
如何:防止 Outlook 显示窗体区域 演示如何防止 Microsoft Office Outlook 显示特定项的窗体区域。
演示如何访问显示窗体区域的 Outlook 项。
Outlook 窗体区域中的自定义操作 描述如何使用户能够对 Outlook 项做出响应。