【问题标题】:Outlook 2013 VSTO - Get calendar selected range + callbackOutlook 2013 VSTO - 获取日历选择范围 + 回调
【发布时间】:2015-09-21 21:02:13
【问题描述】:

如何检索 Outlook 日历中显示的日期范围?例如,当我打开本周的周视图时,我需要在代码中知道当前日历显示的范围是从 2015-09-21 到 2015-09-27。

假设我将日历引用为MAPIFolder 对象。我发现这个对象有一个CurrentView 成员,它有几个很有前途的属性。但是DisplayedDates 不包含任何项目,Filter 是空的并且SelectedEndTime / SelectedStartTime 都指向 4501-01-01,即没有设置日期。那么我做错了什么?是的,在评估此对象时,Outlook 中的日历视图处于打开状态且处于活动状态。

第二个问题:在获得当前显示范围后,是否有一个回调或事件可以在显示范围更改时触发?

【问题讨论】:

    标签: .net calendar outlook vsto outlook-addin


    【解决方案1】:

    尝试使用资源管理器类的CurrentView 属性,而不是文件夹。要为当前Explorer 的视图获取View 对象,请使用 Explorer.CurrentView 而不是 Explorer.CurrentFolder 返回的当前文件夹对象的 CurrentView 属性。

    MSDN 声明如下:

    View 对象允许您创建可自定义的视图,以便您更好地排序、分组并最终查看所有不同类型的数据。有多种不同的视图类型可提供创建和维护重要数据所需的灵活性。

    • 表格视图类型 (olTableView) 允许您在基于字段的简单表格中查看数据。
    • 日历视图类型 (olCalendarView) 允许您以日历格式查看数据。
    • 卡片视图类型 (olCardView) 允许您查看一系列卡片中的数据。每张卡片都显示了物品所包含的信息,并且可以进行分类。
    • 图标视图类型 (olIconView) 允许您以图标的形式查看数据,类似于 Windows 文件夹或资源管理器。
    • 时间线视图类型 (olTimelineView) 允许您在可自定义的线性时间线中查看接收到的数据。

    使用 View 对象的 XML 属性定义和自定义视图。 XML 属性允许您创建和设置自定义的 XML 模式,用于定义视图的各种功能。

    在可以获取当前显示范围后,是否有一个回调或事件可以在显示范围更改时触发?

    不,Outlook 对象模型不提供此类事件。但是,您可以尝试处理 Explorer 类的 BeforeViewSwitch 事件,该事件在资源管理器更改为新视图之前触发,无论是作为用户操作的结果还是通过程序代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2017-03-26
      相关资源
      最近更新 更多