【发布时间】:2016-05-25 23:49:18
【问题描述】:
我有一个用于阅读窗格的表单区域。我检索转发邮件项目的 wordeditor,然后将信息添加到 word 文档。当我不在同一个函数中创建和发送电子邮件时,这似乎有效,但是当我想创建转发电子邮件、编辑并发送它时,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 已经更新了对 word doc 的编辑。我试过fEmail.Save(),但似乎没有用。文字编辑器确实保存了工作,因为我可以在不同的位置访问文字编辑器,它仍然可以进行编辑。 Email.Body 只是不会随着更改而更新。
编辑:我要补充一点,执行以下操作确实会更新 Email.Body,但似乎是一个时髦的解决方案。
fEmail.Display();
((Outlook.MailItem)fEmail).Close(Outlook.OlInspectorClose.olSave);
【问题讨论】:
标签: c# outlook-addin