以编程方式展开/折叠Outlook导航窗格中的文件夹

时间:2010-02-03 17:07:39

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

我正在使用C#编写Outlook的加载项。是否有办法以编程方式展开和折叠Outlook 2007文件夹导航窗格中的文件夹?此外,扩展文件夹时是否会触发事件?

2 个答案:

答案 0 :(得分:3)

Outlook不会公开允许您展开或折叠树视图中文件夹的事件。您可以使用Windows API执行此操作。

答案 1 :(得分:3)

可能有一种方法可以扩展(但不会崩溃)。

基本上,您需要做的是在每个步骤中逐个浏览子文件夹,使子文件夹成为当前文件夹。

我在addin启动时在Outlook 2010(VSTO)中对此进行了测试。因此,如果您有父文件夹文件夹A及其子文件夹文件夹A1,文件夹A2和文件夹A3。

要展开文件夹A,请执行以下操作:

  1. 获取活跃的资源管理器(Globals.thisaddin.application.activeexplorer)
  2. 设置当前文件夹explorer.currentfolder =文件夹A
  3. 现在遍历文件夹A下的所有子文件夹,并使每个子文件夹成为当前文件夹:
    (代码应该是这样的)

    子文件夹= FolderA.Folders
    对于每个文件夹,作为子文件夹中的outlook。文件夹     Explorer.currentfolder =文件夹
    下一个文件夹

  4. 这种方法对我有用,所以希望这是有希望的