在Outlook窗体中为Outlook加载项创建一个类似于邮件列表的视图

时间:2015-03-05 14:29:53

标签: c# email outlook outlook-addin

我正在尝试创建一个Outlook加载项,其中将有一个Windows窗体。在该表单中将是一个邮件消息列表,即只是与收件箱不同的视图。

我正在使用C#[VS 2010 Outlook 2010加载项]为MS Outlook 2010/2013执行此操作。

我已经尝试过探索以下内容,但它似乎不合适或者我错过了一些东西:

  • 表视图(它似乎仅适用于活动的资源管理器/检查器,而不适用于窗体内可显示/可显示的内容。)
  • 表格区域
  • Outlook视图控件(我似乎无法找到对ViewCtl或AxMicrosoft的引用)

我现在正在考虑使用类似网格视图的东西,然后用邮件项填充它。但我想知道是否有比这更好的方法,如果有人能指出我在哪里看?

谢谢:)

1 个答案:

答案 0 :(得分:0)

  

现在考虑使用类似网格视图的东西,然后用邮件项填充它。

我不认为保留另一个列表视图(例如使用网格视图控件)将是一项简单的任务。

  

表单区域

它们仅适用于检查员窗口。您需要使用Windows API函数将Outlook窗口子类化,以将您自己的表单注入Explorer窗口。有关详细信息,请参阅Adjacent Windows In Outlook

您可以使用Folder类的[WebViewURL] [2]属性,该属性允许设置一个字符串,指示分配给文件夹的网页的URL。

Sub SetupFolderHomePage()  
  Dim nsp As Outlook.NameSpace  
  Dim mpfInbox As Outlook.Folder  
  Dim mpfNew As Outlook.Folder 
  Set nsp = Application.GetNamespace("MAPI")  
  Set mpfInbox = nsp.GetDefaultFolder(olFolderInbox)  
  Set mpfNew = mpfInbox.Folders.Add("MyFolderHomePage")  
  mpfNew.WebViewURL = "http://www.microsoft.com"  
  mpfNew.WebViewOn = True  
End Sub

请注意,您需要在Windows注册表中设置NonDefaultStoreScript密钥才能使Outlook中的WebView属性正常工作。有关详细信息,请参阅You cannot add a URL to the Address box on the Home Page tab in Outlook 2007

作为替代方案,请考虑使用ADX的WebViewPane布局。该解决方案基于WebViewURL属性,并且还需要Windows注册表项,但是提供了一种使用.net控件设置Windows窗体的更方便的方法。有关详细信息,请参阅[类似] [3]论坛帖子。

您还可以在资源管理器窗口中自定义当前视图。 Outlook对象模型为Explorer和Folder类提供CurrentView属性。 View对象表示用于对数据进行排序,分组和查看的可自定义视图。使用View对象的XML属性定义和自定义视图。 XML属性允许您创建和设置定义视图的各种功能的自定义XML模式。