可以使用窗体区域自定义 Microsoft Office Outlook 窗体。 Visual Studio 提供了高级工具,可让你更轻松地设计、开发和调试窗体区域。
适用于: 本主题中的信息适用于 Outlook 的 VSTO 外接程序项目。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能。
本主题提供以下信息:
使用窗体区域的优点
窗体区域为传统 Outlook 窗体开发提供了许多增强功能:
自定义任何标准表单的默认页面。
将最多 12 个额外页面添加到任何标准窗体。
替换或增强任何标准表单。
在阅读窗格和检查器中呈现自定义用户界面。
有关详细信息,请参阅 自定义窗体页和窗体区域。
将 Outlook 窗体区域添加到项目
可以使用 “新建 Outlook 窗体区域 ”向导来设计新窗体区域或导入在 Outlook 中设计的窗体区域。 此外,如果你有在另一个 Outlook VSTO 外接程序项目中使用的窗体区域,则可以重复使用现有的窗体区域。
使用向导创建新的窗体区域
若要创建窗体区域,请将 Outlook 窗体区域 项添加到 Outlook VSTO 外接程序项目。 这会启动 “新建 Outlook 窗体区域 ”向导。
使用向导指示是要设计新窗体区域还是导入在 Outlook 中设计的窗体区域。 有关设计新窗体区域的详细信息,请参阅 “使用窗体区域设计器”。 有关使用 Outlook 中设计的窗体区域的详细信息,请参阅 导入在 Outlook 中设计的窗体区域。
使用向导指定要创建的窗体区域的类型。 下表描述了每个窗体区域类型。
| 区域类型 | Description |
|---|---|
| 分开 | 将窗体区域添加为 Outlook 窗体中的新页面。 |
| 毗邻 | 将窗体区域追加到 Outlook 窗体的默认页面底部。 |
| Replacement | 将窗体区域添加为一个新页面,该页面替换 Outlook 窗体的默认页面。 |
| 全部替换 | 将整个 Outlook 窗体替换为窗体区域。 |
还可以使用向导指定要扩展的显示条件和选择要扩展的窗体类型。 有关详细信息,请参阅 如何:将表单区域添加到 Outlook 加载项项目中。
在向导中所做的选择会影响其他向导页中可用的选项。 例如,如果在“新建 Outlook 窗体区域”页面中选择“相邻”或“分隔”,则“提供描述性文本”中的“标题和说明”字段不可用,并选择你的显示首选项页。 这是因为 Outlook 在显示相邻或单独的窗体区域时不使用这些字段。
窗体区域文件
完成 “新建 Outlook 窗体区域 ”向导后,Visual Studio 会自动将以下文件添加到项目中:
表单区域代码文件。 此文件具有您在“添加新项”对话框中为 Outlook 窗体区域项指定的名称。 添加代码以处理此文件的窗体区域事件。
表单区域设计器代码文件。 此文件包含表单区域设计器生成的代码,不应直接编辑。
Outlook 窗体存储(.ofs)文件。
注释
此文件仅在导入在 Outlook 中设计的表单域时才会添加到项目中。
窗体区域工厂类
窗体区域代码文件包含一个实现 IFormRegionFactory 接口的部分类。 这是用于程序的窗体区域工厂类。 窗体区域工厂类负责创建窗体区域的新实例。
可以通过展开窗体区域工厂部分来查找该类。
“新建 Outlook 窗体区域”向导向此类添加属性,这些属性指定窗体区域的内部名称和显示窗体区域的邮件类。 将文件添加到项目后,可以手动修改这些属性。
大多数窗体区域工厂类在窗体区域设计器文件中实现。 但是, FormRegionInitializing 事件处理程序在窗体区域代码文件中公开。 可以使用此事件处理程序指定 Outlook 是否应显示窗体区域。 有关详细信息,请参阅 “处理窗体区域事件”。
将现有窗体区域添加到项目
如果你有在另一个 Outlook 项目中使用的 Outlook 窗体区域,则可以使用“ 添加现有项 ”对话框在当前 Outlook VSTO 外接程序项目中重复使用它。
现有窗体区域必须具有代码文件(.vb或.cs):无法使用“添加现有项”对话框添加 Outlook 窗体存储(.ofs)文件。 但是,可以通过导入 Outlook 窗体存储文件来创建新的窗体区域。 有关详细信息,请参阅 如何:将表单区域添加到 Outlook 加载项项目中。
使用窗体区域设计器
窗体区域设计器可帮助你设计窗体区域的布局和外观。 可以将托管控件拖到设计器的图面,双击控件以打开事件处理程序,并在 “属性” 窗口中设置属性。
注释
可以在“属性”窗口的“清单”节点下方找到影响窗体区域显示方式的属性。
仅当在“新建 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 窗体区域项会自动在项目中添加对此程序集的引用,并在窗体区域代码文件的顶部插入相应的 using 或 Imports 语句。
可以使用命名空间中的 Microsoft.Office.Interop.Outlook 类、方法和属性来完成大多数 Outlook 编程任务。 有关 Outlook 对象模型的详细信息,请参阅 Outlook 对象模型概述。 有关使用 Outlook 对象模型的典型任务的示例,请参阅 Outlook 解决方案。
处理窗体区域事件
Outlook 窗体区域项会自动将以下三个事件处理程序添加到窗体区域代码文件中。
| 事件 / 活动 | Description |
|---|---|
| 表单区域初始化 | 在初始化表单区域之前发生。 可以检查此事件处理程序中的条件,以确定 Outlook 是否应显示窗体区域。 有关详细信息,请参阅 “如何:防止 Outlook 显示窗体区域”。 |
| FormRegionShowing | 在创建窗体区域的实例之后,但在窗体区域出现之前发生。 |
| FormRegionClosed | 在关闭窗体区域之前发生。 |
构建项目
生成包含窗体区域的 Outlook VSTO 外接程序项目时,Visual Studio 会将以下信息添加到注册表:
与一个或多个窗体区域关联的每个邮件类的键。
每个窗体区域的条目和一个表示 Outlook VSTO 外接程序名称的关联值。
Outlook 使用此信息加载窗体区域。
调试窗体区域
可以调试包含窗体区域的 Outlook VSTO 外接程序,就像调试其他 Visual Studio 项目一样。 启动 Visual Studio 调试器时,Visual Studio 会自动启动 Outlook。
若要查看窗体区域,必须打开相应的 Outlook 项目。 例如,如果将相邻的窗体区域追加到邮件项的底部,请打开邮件项目。
部署窗体区域
表单区域会自动与关联的 Outlook VSTO 外接程序一起部署。 因此,无需进行任何特殊任务来部署表单区域。 有关部署 VSTO 外接程序的详细信息,请参阅 部署 Office 解决方案。
相关主题
| Title | Description |
|---|---|
| 创建 Outlook 窗体区域的指南 | 提供有助于优化窗体区域并避免潜在问题的信息。 |
| 如何将窗体区域添加到 Outlook 插件项目中? | 演示如何使用 “新建 Outlook 窗体 区域”向导创建窗体区域以扩展标准或自定义Microsoft Office Outlook 窗体。 |
| 将窗体区域与 Outlook 邮件类相关联 | 介绍如何通过将窗体区域与每个项目的邮件类相关联来指定哪些Microsoft Office Outlook 项目显示窗体区域。 |
| 演练:设计 Outlook 窗体区域 | 演示如何设计一个自定义窗体区域,使其在联系人项目的检视器窗口中显示为新页面。 |
| 操作指南:导入在 Outlook 中设计的表单区域 | 演示如何在 Microsoft Office Outlook 中设计窗体区域,然后使用 “新建 Outlook 窗体区域 ”向导将窗体区域导入到 Outlook VSTO 外接程序项目中。 |
| 在运行时访问表单区域 | 介绍如何编写代码来显示、隐藏或修改窗体区域中的控件,并使用户使用该类从项目中 Globals 的其他区域运行代码。 |
| 如何防止 Outlook 显示表单区域 | 演示如何阻止 Microsoft Office Outlook 显示特定项目的窗体区域。 |
| 演示如何访问窗体区域所在的 Outlook 项目。 | |
| Outlook 窗体区域中的自定义操作 | 介绍如何使用户能够响应 Outlook 项目。 |