2

以下を使用して、C#コードから新しいOutlookメールアイテムを正常に開くことができました:

using Outlook = Microsoft.Office.Interop.Outlook;


Outlook.Application oApp;
Outlook.Inspectors oInspects;
Outlook._MailItem  oMailItem;


oApp = new Outlook.Application();
oInspects = oApp.Inspectors;
oMailItem = (Microsoft.Office.Interop.Outlook._MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

oMailItem.Display(true);

私の問題は次のとおりです。メールアイテム ウィンドウの隅にある [X] をクリックして閉じると、変更を保存するかどうかを尋ねるメッセージが表示されますが、これで問題ありません。しかし、オプション「いいえ」を選択した後、電子メールウィンドウは閉じますが、別のウィンドウがそのすぐ後ろに表示され (灰色表示)、隅にある X をもう一度クリックして閉じる必要があります。

送信ボタンをクリックしてメールを送信すると、同じことが起こります。元のウィンドウが閉じ、まったく同じ (すべてのコンテンツを含む) 別のウィンドウが表示されますが、ボタンがグレー表示され、閉じるには X をクリックする必要があります。

次のコード (以下の行の任意の組み合わせ) を使用してウィンドウを閉じようとしましたが、何も機能していないようです:

oMailItem.Close(Microsoft.Office.Interop.Outlook.OlInspectorClose.olDiscard);
oMailItem.Delete();
Marshal.FinalReleaseComObject(oMailItem);
Marshal.ReleaseComObject(oApp);

誰かがこれを解決する方法についてアイデアを持っているなら、私はそれを大いに感謝します. 答えを探して何時間も頭を悩ませてきた

前もって感謝します

4

3 に答える 3

1

oMailItem.Display(false);代わりに「true」を使用してみてください

于 2013-01-10T12:23:24.937 に答える
0

Outlook 2007 + VS 2010 Express でコードを試しました。あなたが直面している問題は、私の環境では発生しません。コードの開始時に Outlook を実行しているかどうかを試しました。

「using」ステートメントは、ルーチン内の「using」変数参照ではなく、ソース コードの上部にある using セクションの一部です。

モーダル ウィンドウを表示するには、oMailTime.Display(true) の「true」が true のままである必要があります。

于 2013-01-10T12:43:54.747 に答える