使用VSTO切换到Outlook日历

时间:2013-04-11 19:42:54

标签: c# outlook vsto outlook-addin outlook-2013

我有一个CustomTaskPane,我已添加到Microsoft Outlook 2013.此窗格包含一个WPF日历控件,双击时我希望它从当前Outlook视图(Mail)切换到日历视图并转到日期在控件中选择。

以下是我正在使用的代码:

private void TopCalendar_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    CalendarView calView = null;
    Explorer explorer;
    DateTime goToDate = (TopCalendar.SelectedDate.HasValue) ? TopCalendar.SelectedDate.Value : DateTime.Today;

    explorer = Globals.ThisAddIn.Application.ActiveExplorer();
    Views views = Globals.ThisAddIn.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar).Views;

    foreach(View v in views)
        if (v.Name == "Calendar")
        {
            calView = (CalendarView)v;
            break;
        }

    calView.CalendarViewMode = OlCalendarViewMode.olCalendarViewMonth;
    calView.GoToDate(goToDate);
    explorer.CurrentView = calView;
}

然而,当我双击日期时,代码被调用(使用断点验证)但似乎对Outlook没有影响。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

请务必致电Apply()以使视图成为Folder的当前视图。您还需要将CurrentFolder分配给日历。

calView.Apply(); // applies the view
explorer.CurrentFolder = Globals.ThisAddIn.Application.GetNamespace("MAPI").GetDefaultFolder(OlDefaultFolders.olFolderCalendar); // changes current folder