Ich habe eine Formularregion für das Lesefenster. Ich finde den Text für die Weiterleitung und füge dann dem Word-Dokument Informationen hinzu. Dies scheint zu funktionieren, wenn ich die E-Mail nicht in derselben Funktion erstelle und sende, aber wenn ich eine Weiterleitungs-E-Mail erstellen, bearbeiten und senden möchte, wird E-Mail.Body nicht aktualisiert.Email.Body nicht nach dem Bearbeiten von WordEditor
_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);
}
}
ich ähnlichen Code in einem Formularbereich verwende E-Mails zum Komponieren, ist der Unterschied, dass zum Zeitpunkt des Send
Ereignis ausgelöst wird, die Email.Body mit den Änderungen an das Wort doc aktualisiert hat. Ich habe versucht fEmail.Save()
, aber scheint nicht zu funktionieren. Der Word-Editor speichert die Arbeit, weil ich auf den Word-Editor zu einem anderen Zeitpunkt zugreifen kann und die Änderungen noch bearbeitet werden. Die Email.Body wird einfach nicht mit den Änderungen aktualisiert.
EDIT: Ich füge hinzu, dass die folgende Aktualisierung der Email.Body
, aber scheint wie eine funky Lösung.
fEmail.Display();
((Outlook.MailItem)fEmail).Close(Outlook.OlInspectorClose.olSave);
Die Funktion wird während eines Tastendruckereignisses im Formularbereich aufgerufen. Es läuft nicht auf einem sekundären Thread. – Natzely