【问题标题】:How to programmatically select a folder to view in Outlook 2010?如何以编程方式选择要在 Outlook 2010 中查看的文件夹?
【发布时间】:2013-04-20 06:14:58
【问题描述】:

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

这是我到目前为止的代码......

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();
    }
}

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

谢谢。

【问题讨论】:

    标签: c# outlook vsto outlook-2010


    【解决方案1】:

    这应该对你有用...

    访问您的Application 对象(或从主加载项类)。然后

    this.Application.ActiveExplorer().CurrentFolder = folder;  
    

    即你可以使用CurrentFolderActiveExplorer

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

    【讨论】:

    • 谢谢!这确实有效!我做了Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder = folder;
    • @NSGaga 你的答案很明确。感谢那。但是我如何使用代码确定新创建的文件夹?请解释。再次感谢
    • @KushanRandima 我猜你有文件夹的对象,不是吗?这取决于文件夹的创建方式,如果您对它没有影响,则必须遍历文件夹并按时间戳或其他方式查找(我只是在猜测,我脑子里没有任何前景的东西而现在:))
    猜你喜欢
    • 2013-04-06
    • 2012-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-06-11
    • 2013-04-13
    • 1970-01-01
    • 2012-08-28
    • 2010-09-29
    相关资源
    最近更新 更多