如何以编程方式选择要在 Outlook 2010 中查看的文件夹?

Mag*_*num 3 c# outlook vsto outlook-2010

我正在通过 Search.Save 方法以编程方式创建搜索文件夹。保存搜索后(它在“搜索文件夹”目录中创建一个新文件夹),我想将焦点设置在这个新创建的文件夹上,以便视图更改为该文件夹。

这是我迄今为止的代码......

searchFolders = inboxFolder.Store.GetSearchFolders();
foreach (Outlook.Folder folder in searchFolders)
{
    if (folder.Name == "Expiring Retention Policy Mail")
    {
        folder.ShowItemCount = Microsoft.Office.Interop.Outlook.OlShowItemCount.olShowTotalItemCount;
        //folder.SetCustomIcon(new Bitmap(32, 32));
        folder.Display();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我执行folder.Display()时,它会打开一个全新的检查器窗口...我不希望发生这种情况,我只是想选择它(例如通过设置焦点?)并在同一个检查器窗口中查看它它存在于。有人知道该怎么做吗?

谢谢。

NSG*_*aga 5

这应该对你有用......

访问您的Application对象(或从主插件类)。进而

this.Application.ActiveExplorer().CurrentFolder = folder;  
Run Code Online (Sandbox Code Playgroud)

即你可以CurrentFolder使用ActiveExplorer

当然,始终确保正确释放您的 COM 对象(需要释放的对象) - 并且您永远不应该像我在这里所做的那样(为了简单起见) - 即像这样链接属性。将每个(属性)保存到一个变量中,并 Marshal.ReleaseComObject在退出时释放 via 。