私は読書枠用のフォーム領域を持っています。フォワードメールアイテムのワードディテクタを取り出して、ワードドキュメントに情報を追加します。これは、同じ機能で電子メールを作成して送信しないときに機能するようですが、電子メールを作成して編集して送信する場合、Email.Bodyは更新されません。私は電子メールを構成するためにフォーム領域で同様のコードを使用WordEditorの編集後にEmail.Bodyが更新されない
_email = this.OutlookItem as Outlook.MailItem;
private void SendForwardEmail()
{
Outlook.MailIem fEmail = null;
Word.Document doc = null;
try
{
fEmail = ((Outlook._MailItem)_email).Forward();
doc = GetWordEditor(fEmail);
EditDoc(doc);
var tmp = doc.Range().Text;
var tmp1 = fEmail.Body; // tmp1 won't have what I added to tmp
((Outlook._MailItem)fEmail).Send(); // This will send with the fEmail.Body value
// and won't show edits to the word doc
}
finally
{
Release(doc);
Release(fEmail);
}
}
、差がSend
イベントがトリガされた時点で、Email.Bodyワードドキュメントの編集で更新されたことです。私はfEmail.Save()
を試しましたが、うまくいかないようです。エディタという単語は、別の場所で単語エディタにアクセスすることができるため、編集内容を保存しますが、編集内容はそのまま残ります。 Email.Bodyは変更を反映していません。
編集:次のようにするとEmail.Body
は更新されますが、ファンキーなソリューションのようです。
fEmail.Display();
((Outlook.MailItem)fEmail).Close(Outlook.OlInspectorClose.olSave);
この関数は、フォーム領域のボタン押下イベント中に呼び出されます。セカンダリスレッドでは実行されていません。 – Natzely