HTMLBody و WordEditor.CheckSpelling لا يبدو أن مثل بعضها البعض على استجابة مضمنة
-
22-12-2019 - |
سؤال
لذا هنا تكمن المشكلة.عندما مضمنة الرد فتحت أنا قادرة على تحريره من دون أي مشكلة.ثم, عند تشغيل التدقيق الإملائي خلال كلمة محرر أفقد القدرة على تحرير خلال HMTLBody البريد الإلكتروني.أعني بذلك أنه إذا كنت تفعل شيئا مثل هذا:
email.HTMLBody = email.HTMLBody.Replace("cat", "dog");
هذا لن يغير الجسم في البريد الإلكتروني.إذا كنت تسليط الضوء email
بعد إجراء التغييرات ، HTMLBody سوف تظهر التغييرات ، ولكن لن تظهر في البريد الإلكتروني.
الآن, إذا كنت تفعل كل شيء من التحرير أولا ، ثم هل التدقيق الإملائي ، وسوف تذهب من خلال كل من النص الذي هو الخطأ ، لكن ذلك لن يغير الفعلية نص البريد الإلكتروني.يحدث هذا فقط على الجسم من البريد الإلكتروني بالمناسبة.يمكنني تغيير إلى:, CC: ، و هذا الموضوع:الحقول على ما يرام لا يهم ما يحدث.كما يؤثر فقط على مضمنة الردود و لا أي البريد الإلكتروني التي برزت في نفسه المفتش.أن نبدأ الرد كما مضمنة ثم البوب و سوف لا تحدث المشكلة.
هذه هي الطريقة التي أقوم التدقيق الإملائي
Outlook.Inspector insp = email.GetInspector;
Word.Document Doc = insp.WordEditor;
if(!doc.SpellingChecked)
{
doc.CheckSpelling();
email.Save();
}
إذا كنت بحاجة إلى أي معلومات اسمحوا لي أن أعرف.
تحرير
لذا وضع أكثر قليلا فكرت في ما @وقال ديمتري, قررت العودة والعمل على استخدام .WordEditor
من البريد الإلكتروني.هذه هي نتائج.
كنت قادرا على تحرير البريد الإلكتروني الجسم جيدا باستخدام كلمة محرر, ولكن سيكون تهيئة البريد الإلكتروني بأكمله (إزالة رد/إلى الأمام الخطوط الفاصلة) و اللون البريد الإلكتروني بأكمله مع الرد اللون (الأزرق بالنسبة لي).كنت قادرا على إصلاح هذا باستخدام البداية والنهاية قيمة في .Range
الوثيقة كما يلي:
Word.Document emailEditor = GetCurrentMailWordEditor(); // A function I use to retrieve the correct editor
Word.Range rng = emailEditor.Range(startIndex, endIndex); // To get only the specific part I want to change
rng.Text = rng.Text.Replace("cat", "dog");
بدلا من
Word.Document emailEditor = GetCurrentMailWordEditor();
Word.Range rng = emailEditor.Range();
rng.Text = rng.Text.Replace("cat", "dog");
التدقيق الإملائي كنت قادرا على إصلاح طريق الحصول على .WordEditor
من المصدر الصحيح هكذا:
Word.Document doc;
if(this.Application.ActiveInspector() != null)
{
OutlookInspector insp = this.Application.GetActiveInspector();
doc = insp.WordEditor;
}
else
{
Outlook.Explorer exp = this.Applicaotn.GetActiveExplorer();
doc = exp.ActiveInlineResponseWordEditor;
}
if(!doc.SpellingChecked)
{
doc.CheckSpelling();
email.Save();
}
المحلول
إذا كان لديك بالفعل مثيل من Word كائن المستند, لماذا لا تفعل استبدال نص باستخدام طراز كائن Word ؟