所以这是问题。打开内联响应时,我可以在没有任何问题的情况下编辑它。然后,当我通过Word Editor运行拼写检查时,我丢失了通过电子邮件的HMTLOB的编辑的能力。到那时我的意思是,如果我做这样的事情:

email.HTMLBody = email.HTMLBody.Replace("cat", "dog");

它不会在电子邮件中更改身体。如果我突出显示发生变化后的email,HTMLBody将显示更改,但它不会在电子邮件中显示。

现在,如果我完成所有编辑和那么 do spellcheck,它将通过所有错误的文本,但它不会更改实际的电子邮件文本。这只发生在电子邮件的身体上。我可以改变:,cc :,和主题:田地不可能发生什么。它只影响内联响应,而不是任何突破它自己的检查员的电子邮件。我可以作为内联的回复,然后弹出它,问题不会发生。

这是我正在做法术检查如果您需要任何信息,请告诉我。

编辑

所以,在@dmitry说什么,我决定从电子邮件中使用.WordEditor返回和工作。这是结果。

我能够使用Word Editor编辑电子邮件机身非常良好,但它将重新格式化整个电子邮件(删除回复/转发分隔线),并将整个电子邮件与回复颜色(蓝色为蓝色)。我能够通过使用文件的.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");
.

拼写检查我能够通过从正确的源获取生成源代码来修复:

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对象模型进行文本替换?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top