我有一个内部Windows窗体应用程序,我想使用“拼写检查”功能。每个人都安装了Office 2007,所以我在那里应该不会有问题,但是我很难使它完全正常工作。
这是我所拥有的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word = Microsoft.Office.Interop.Word;
using System.Reflection;
namespace Refraction.Spelling
{
public static class SpellCheckers
{
public static string CheckSpelling(string text)
{
Word.Application app = new Word.Application();
object nullobj = Missing.Value;
object template = Missing.Value;
object newTemplate = Missing.Value;
object documentType = Missing.Value;
object visible = true;
object optional = Missing.Value;
object savechanges = false;
Word._Document doc = app.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);
doc.Words.First.InsertBefore(text);
Word.ProofreadingErrors errors = doc.SpellingErrors;
var ecount = errors.Count;
doc.CheckSpelling(ref optional, ref optional, ref optional, ref optional,
ref optional, ref optional, ref optional, ref optional, ref optional,
ref optional, ref optional, ref optional);
object first = 0;
object last = doc.Characters.Count - 1;
var results = doc.Range(ref first, ref last).Text;
doc.Close(ref savechanges, ref nullobj, ref nullobj);
app.Quit(ref savechanges, ref nullobj, ref nullobj);
return results;
}
}
}
我这样使用:
memDirectionsToAddress.Text = SpellCheckers.CheckSpelling(memDirectionsToAddress.Text);
现在,此操作成功从Word弹出了SpellCheck对话框,并检测到任何拼写错误的单词,但是我无法在WinForm应用程序中进行更正。
同样,它使Word Doc的“外壳”与更正的文本保持打开状态。我怎么不显示或至少使它消失?
两件事情:
首先,尽管“壳”关闭了
每次闪烁。任何解决方案
那?
其次,“拼写检查”对话框
没有出现在TOP上,我该怎么设置
对吗?
谢谢
最佳答案
下一步将是:
将更正的文本拉出文档。
关闭文档。 (如果在Word中仅打开一个文档,则可能要关闭或隐藏Word应用程序。)
将更正的文本返回到调用函数。
更多信息:
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/ac899e2d-5c2f-4ea9-ada2-b03aa4773664
http://www.c-sharpcorner.com/UploadFile/Globalking/fileAccessingusingcsharp02242006050207AM/fileAccessingusingcsharp.aspx?ArticleID=44e79e38-0cdc-4e5e-8574-63572d8cc112
关于c# - 在Windows Form App中实现单词拼写检查,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1358185/