【问题标题】:Cannot find a specific Outlook Calendar找不到特定的 Outlook 日历
【发布时间】:2011-11-30 21:52:34
【问题描述】:

我正在尝试查找特定的 Outlook 日历。我已经查看了来自 Outlook addin: Get elements from a selected calendar 的说明。

当我尝试用这段代码实现它时:

public static MAPIFolder GetTimeTrackingCalendar()
{
MAPIFolder result = null;
MAPIFolder calendars = (MAPIFolder)outlook.ActiveExplorer().Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
for (int i = 0; i < calendars.Folders.Count; i++)
{
    if (calendars.Folders[i].Name == "MyTimeTracker")
    {
        result = calendars.Folders[i];
        break;
    }
}
return result;

}

我收到一条错误消息,提示数组索引超出范围。检查日历对象,它们是两个文件夹,但都不支持 Name 属性。我错过了演员表吗?

谢谢,比尔 N

【问题讨论】:

  • 已经有一段时间了(这就是为什么评论而不是答案),但 IIRC 认为迭代应该基于 1 而不是基于 0。不过,我可能是错的。 :)
  • 谢谢肯。就是这样。我想知道为什么当我检查日历对象并查看两个文件夹时,我没有看到 Name 属性。

标签: c#-3.0 automation outlook


【解决方案1】:

仅供将来参考,Outlook(和其他 Office 自动化对象)使用基于 1 的索引,而不是基于 0 的索引。这就是导致“数组索引越界”错误的原因。

像这样改变循环可以修复它:

for (int i = 1; i <= calendars.Folders.Count; i++)
{
    if (calendars.Folders[i].Name == "MyTimeTracker")
    {
        result = calendars.Folders[i];
        break;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-31
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多