2

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() を実行すると、まったく新しいインスペクター ウィンドウが開きます...これが発生するのは望ましくありません。単にそれを選択して (フォーカスを設定するなど)、同じインスペクター ウィンドウで表示したいだけです。に存在します。これを行う方法を知っている人はいますか?

ありがとうございました。

4

1 に答える 1

4

これはあなたのために働くはずです...

Applicationオブジェクトに (またはメインのアドイン クラスから)アクセスします。その後

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

CurrentFolderつまり、を使用できますActiveExplorer

もちろん、常に COM オブジェクト(解放が必要なもの)を適切に解放するようにしてください。また、ここで行ったように (簡単にするために) 絶対に解放しないでください。つまり、そのようなプロパティをチェーンします。各 (プロパティ) を変数に保存 Marshal.ReleaseComObjectし、途中で via を解放します。

于 2013-04-19T22:09:44.857 に答える