Formatering går tapt når du redigerer HtmlBody-egenskapen for et Outlook-element ved hjelp av Outlook-objektmodellen

Opprinnelig KB-nummer:   4020759

Symptom

Anta at du oppretter et nytt MailItem-, AppointmentItem-eller MeetingItem-objekt ved hjelp av Outlook-objektmodellen. Deretter angir du HtmlBody-egenskapen for elementet til en tidligere opprettet velformet HTML-kilde som inneholder CSS-stiler (Cascading Style Sheet). Når du har kalt Vis-metoden og Send-metoden for å sende elementet, kan formateringen som dikteres av de konfigurerte CSS-stilene, forsvinne, eller avsnittsstilene kan bli erstattet av MSONormal klassen.

Årsak

Microsoft Outlook bruker Microsoft Word som redigeringsprogram. Tap av formatering kan oppstå når HTML-kilden valideres av Html-motoren i Word når elementet sendes.

Løsning

Vi anbefaler at du bruker det underliggende WordEditor-objektet til inspeksjonen til å redigere HTML- og RTF-organene (RTF) i Outlook-elementer når du bruker Outlook-objektmodellen, i stedet for å redigere HtmlBody egenskapen. Se eksemplet nedenfor.

Obs!

Se Word-objektmodell hvis du vil ha mer informasjon.

using Outlook = Microsoft.Office.Interop.Outlook;
using Word = Microsoft.Office.Interop.Word;
namespace CreateAndEditMailItemUsingWord
{
    class Program
    {
        static void Main(string[] args)
        {
            Outlook.MailItem mailItem = (new Outlook.Application()).CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
            Word.Document wordDocument = mailItem.GetInspector.WordEditor as Word.Document;
            // Insert the text at the very beginning of the document
            // You can control fonts and formatting using the ParagraphFormat propety of the Word.Range object
            Word.Range wordRange = wordDocument.Range(0, 0);
            wordRange.Text = "Please insert your text here";
            mailItem.Display();
        }
    }
}