创建视图

此示例展示如何使用 Views 集合的 Add(String, OlViewType, OlViewSaveOption) 方法创建 Folder 对象视图。

示例

注意

下面的代码示例摘录自 Microsoft Office Outlook 2007 应用程序编程

可以创建可自定义的视图,使得您能够在 Outlook 资源管理器窗口的"视图窗格"中排序、分组和查看所有不同类型的数据。 也可以通过编程方式自定义内置视图。 下表列出了表示 Outlook 视图的对象。

对象名称

说明

BusinessCardView

数据会作为一系列电子名片图像显示。

CalendarView

数据会以日历格式显示。

CardView

数据会在一系列卡片中显示。

IconView

数据会作为 Windows 文件夹图标或资源管理器图标显示。

TableView

数据会在基于字段的简单表格中显示。

TimelineView

数据会在可自定义的线性时间线中显示。

你可以使用 View 对象访问所有视图的通用属性和方法。 但是,若要访问并非对所有视图均通用的特定属性,则必须将 View 对象转换为要访问的属性所属的派生 View 对象。 例如,若要访问 Cardview 对象的 HeadingsFont 属性,需将 View 对象转换为 Cardview 对象。 如果要确定某个 View 对象所代表的视图类型,请使用 ViewType 属性。

若要创建新的视图,请将 Views 集合的 Add 方法用于 Folder 对象。 然后,设置视图的可见性,该操作可在创建视图时执行,也可在创建后的任意时间执行。 若要在创建时设置视图的可见性,请在 Add 方法的 SaveOption 参数中指定 OlViewSaveOption 常量。 若要在创建视图后的任何时间设置可见性,请为 View 对象的 SaveOption 属性指定 OlViewSaveOption 常量。

添加新视图时将引发 Views 集合的 ViewAdd 事件。 在创建视图之后,通过将 View 对象转换为派生对象之一然后进行所需的更改,以编程方式自定义视图。 使用派生 View 对象或 View 对象的 Save 方法保存视图的所有更改。 最后,使用派生 View 对象或 View 对象的 Apply 方法将该视图应用于当前 Explorer 对象。 这会引发 Explorer 对象的 ViewSwitch 事件。

在下面的代码示例中,CreateMeetingRequestsView 通过将 View 对象转换为 TableView 对象,向用户的收件箱中添加一个名为“会议请求”的新视图。 然后,CreateMeetingRequestsView 会调用 Views 对象的 Add 方法,并将 Name 参数设置为“会议请求”、将 ViewType 参数设置为 olTableView。 将 TableView 对象的 Filter 属性设置为 DAV 搜索和定位 (DASL) 字符串,这样,只有当项目的邮件类中包含“IPM.Schedule”时,才会显示视图。 然后,系统会保存并应用新视图。

如果使用 Visual Studio 测试此代码示例,必须先添加对 Microsoft Outlook 15.0 对象库组件的引用,并在导入 Microsoft.Office.Interop.Outlook 命名空间时指定 Outlook 变量。 不得将 using 语句直接添加到此代码示例中的函数前面,这个语句必须后跟公共类声明。 下面的代码行演示了如何在 C# 中执行导入和分配。

using Outlook = Microsoft.Office.Interop.Outlook;
private void CreateMeetingRequestsView()
{
    const string PR_MESSAGE_CLASS =
        "http://schemas.microsoft.com/mapi/proptag/0x001A001E";
    Outlook.Views views =
        Application.Session.GetDefaultFolder(
        Outlook.OlDefaultFolders.olFolderInbox).Views;
    Outlook.TableView tableView = (Outlook.TableView)
        views.Add("Meeting Requests",
        Outlook.OlViewType.olTableView,
        Outlook.OlViewSaveOption.olViewSaveOptionThisFolderEveryone);
    tableView.Filter = "\"" + PR_MESSAGE_CLASS + "\"" +
        " like 'IPM.Schedule%'";
    tableView.Save();
    tableView.Apply();
}

另请参阅