0

Outlook VSTO アプリがあります。ロードしたフォームから SeletNamesDialog を呼び出そうとしています。すばらしいダイアログが表示され、モーダルは問題ありませんが、フォームが Outlook アプリの背後に移動しているようです。したがって、一連の名前を選択して[OK]をクリックすると、ダイアログは消えますが、Outlookを最小化しない限りフォームは表示されません(明らかに理想的ではありません)。

これを回避する方法はありますか?ダイアログをロードするために使用しているコードは次のとおりです。

  var app = new Application();

        AddressList gal = app.ActiveExplorer().Session.GetGlobalAddressList();
        var dlg = app.Session.GetSelectNamesDialog();
        dlg.InitialAddressList = gal;
        bool b = dlg.Display();
        var sb = new StringBuilder();
        foreach (Recipient r in dlg.Recipients)
        {
           sb.Append(r.Name +  ";");
        }
        txtPeople.Text = sb.ToString();
4

1 に答える 1

1

Outlook では、アドレス帳を表示するときにフォームのウィンドウ ハンドルを指定できません。

拡張 MAPI (C++ または Delphi のみ) とIAddrbook::Addressメソッド、Redemption とそのRDOAddressBook.ShowAddressBookメソッド (ParentWindow パラメーターを持つ)、またはRDOSelectNamesDialogオブジェクト (RDOSession に割り当てられたウィンドウ ハンドルを使用) のいずれかを使用できます。 ParentWindow プロパティ)

于 2013-03-15T01:49:36.217 に答える