J'utilise la vérification orthographique de Word dans mon application de WinForm de maison. Mes clients sont tous des machines XP avec Office 2007 et, au hasard, la boîte à suggestions de vérification orthographique apparaît derrière l'application et rend tout "figé" comme vous ne pouvez pas y accéder.
Suggestions? Que font les autres pour contourner ce problème ou l'arrêter complètement?
Merci
Ci-dessous mon code, pour référence.
public class SpellCheckers
{
public 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 = false;
object optional = Missing.Value;
object savechanges = false;
app.ShowMe();
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);
Marshal.ReleaseComObject(doc);
Marshal.ReleaseComObject(app);
Marshal.ReleaseComObject(errors);
return results;
}
}
Et je l'appelle de mon application WinForm comme si ->
public static void SpellCheckControl(Control control)
{
if (IsWord2007Available())
{
if (control.HasChildren)
{
foreach (Control ctrl in control.Controls)
{
SpellCheckControl(ctrl);
}
}
if (IsValidSpellCheckControl(control))
{
if (control.Text != String.Empty)
{
control.BackColor = Color.FromArgb(180, 215, 195);
control.Text = Spelling.CheckSpelling(control.Text);
control.Text = control.Text.Replace("\r", "\r\n");
control.ResetBackColor();
}
}
}
}
Merci @AJ McK. J'ai également eu problème similaire à celui abordé dans la question ci-dessus et il résolu avec votre réponse. – Madhuri
Avant de tester en mode débogage, cela fonctionnait. Mais maintenant, j'essaie de lancer exe encore Word Spell Check apparait caché et "gèle" mon application. Pouvez-vous s'il vous plaît m'aider à ce sujet. – Madhuri