切换到Outlook日历使用VSTO

问题描述:

我有一个CustomTaskPane,我已经添加到Microsoft Outlook 2013.此窗格包括一个WPF日历控件,当双击我想它从当前的Outlook视图(邮件)切换到日历查看并转到控件中选择的日期。切换到Outlook日历使用VSTO

这里是我使用的代码:

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中没有任何影响。有什么建议么?

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

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