Ole*_*leg 5 c# automation vba ms-word word-vba
我的代码需要在MS Word 2010中启用拼写检查,以便用户可以在拼写错误下看到红色下划线.
在当前版本中,我尝试执行此操作以启用拼写检查:
wordApplication.Options.CheckSpellingAsYouType = true;
wordApplication.Options.SuggestSpellingCorrections = true;
wordApplication.ActiveDocument.ShowSpellingErrors = true;
wordApplication.ActiveDocument.CheckSpelling();
Run Code Online (Sandbox Code Playgroud)
我打开Word并输入"Test texxt string".在此之后我运行我的代码但没有任何反应:

我没有在"texxt"下看到任何下划线.如果我转到选项,我会看到"键入时检查拼写"选项已启用:

现在,如果我检查这个属性:
wordApplication.ActiveDocument.SpellingErrors[0].Text
Run Code Online (Sandbox Code Playgroud)
它将包含"texxt",这意味着实际上已经检查了拼写.
此外,如果我只是重新启动MS Word并输入相同的文本 - 红色下划线变为可见:

我还尝试调用Application.ScreenRefresh并设置ScreenUpdating属性,但这没有任何效果.
注意:当文档中没有文本时,我在开头运行此代码/宏.如果有一些文字 - 它有效.
注2:重现的确切步骤:
启动MS Word.转到选项并禁用"在键入时检查拼写".重启Word.
启动Word并运行以下宏:
Options.CheckSpellingAsYouType = true
Options.SuggestSpellingCorrections = true
ActiveDocument.ShowSpellingErrors = true
Run Code Online (Sandbox Code Playgroud)键入以下文本:"测试texxt字符串.".按Enter键.
运行以下宏
MsgBox ActiveDocument.SpellingErrors(1).Text
您将在MessageBox中看到"texxt"但不是红色下划线
偶然发现以下解决方案:如果用户输入一些文本后,我调用以下代码,则会显示下划线:
int iDummy = wordDocument.wordApp.ActiveDocument.SpellingErrors.Count;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3656 次 |
| 最近记录: |