2012-01-20 7 views
0

vb.net 2010を使用してOutLook 2007のアドインを作成しています。アドインはOutlookUIに新しいツールバー&ボタンを配置します。これらのうちの1つは、MODALLYという形式を開きます。モーダルオープンされたフォーム(form.ShowDialogメソッド)は、呼び出されたフォーム/アドインのイベントをリッスンできますか?

しかし、Outlookで読み込まれる "ThisAddin"クラスには、 "WithEvents"と宣言された多数のOutlook固有変数があります。 Outlookフォルダから追加/削除された項目を監視します。

form.showdialogの代わりにform.showを使用すると、ThisAddinクラスで発生したイベントの情報で表示されたフォームを問題なくアップデートできます。問題は私がフォームを閉じるまで、すべてがフリーズする、form.ShowDialog()を開くときだけです。

イベントに応答するフォームを取得し、基になるOutlook 2007 UIの上にモーダルモーダル表示することができれば、本当に役に立ちます。

お手数をおかけしていただきありがとうございます。

ジム

+0

これは仕様です。ダイアログボックスは、アプリケーションの他のウィンドウを無効にすることによってモーダルになります。私はあなたが本当に "上の"機能の後であることを推測しているが、わからない。 –

+0

これに感謝します。実際には別のスレッドを使用するなどの方法はありませんか? Outlook自体は引き続き動作します(受信メールは引き続きモーダルダイアログが開いた状態で受信されます)。そうでない場合は、私が動作できるTopMostフォームのプロパティを知っています。私が実際にやっていることは、フォームを表示する(開いていない場合)か、複数のアイテムをOutlookフォルダに移動/ドロップしたときに発生する各Items.ItemAddイベントでフォームを更新することです。再度、感謝します。 – user1161274

答えて

1

This記事は、メインアプリ/ UIが実行されているものとは別のスレッド上にShowDialogを使用してモーダルフォーム/ダイアログを開き、それでもその主なアプリケーション上のイベントに応答する方法を正確に説明して/ UIスレッド。

関連する問題