Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何以编程方式选择要在Outlook 2010中查看的文件夹?_C#_Outlook_Vsto_Outlook 2010 - Fatal编程技术网

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

C# 如何以编程方式选择要在Outlook 2010中查看的文件夹?,c#,outlook,vsto,outlook-2010,C#,Outlook,Vsto,Outlook 2010,我正在通过search.Save方法以编程方式创建一个搜索文件夹。保存搜索后(它会在搜索文件夹目录中创建一个新文件夹),我希望将焦点设置为关注此新创建的文件夹,以便视图更改为此文件夹 这是我到目前为止的代码 searchFolders = inboxFolder.Store.GetSearchFolders(); foreach (Outlook.Folder folder in searchFolders) { if (folder.Name == "Expiring Retentio

我正在通过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();
    }
}
当我执行folder.Display()时,它会打开一个全新的检查器窗口。。。我不希望发生这种情况,我只想选择它(比如通过设置焦点?),并在它所在的同一个检查器窗口中查看它。有人知道怎么做吗


谢谢。

这应该适合你

访问
应用程序
对象(或从主加载项类)。然后

this.Application.ActiveExplorer().CurrentFolder = folder;  
i、 e.您可以使用
ActiveExplorer的
CurrentFolder

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


这应该对你有用

访问
应用程序
对象(或从主加载项类)。然后

this.Application.ActiveExplorer().CurrentFolder = folder;  
i、 e.您可以使用
ActiveExplorer的
CurrentFolder

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


非常感谢。这确实奏效了!我做了
Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder=folder@NSGaga你的答案很清楚。谢谢你。但是如何使用代码确定新创建的文件夹?请解释一下。谢谢again@KushanRandima我猜你有一个文件夹的对象,不是吗?这取决于文件夹是如何创建的,如果你对它没有影响,你就必须遍历文件夹并按时间戳或其他方式查找(我只是猜测,我暂时没有任何outlook内容:))谢谢!这确实奏效了!我做了
Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder=folder@NSGaga你的答案很清楚。谢谢你。但是如何使用代码确定新创建的文件夹?请解释一下。谢谢again@KushanRandima我猜你有一个文件夹的对象,不是吗?这取决于文件夹是如何创建的,如果你对它没有影响,你就必须遍历文件夹并按时间戳或其他方式查找(我只是猜测,我暂时没有任何outlook内容:)