Tuesday, May 10, 2011

C# - Spell Check

    public void SpellCheck(TextBox tBox, Label lLbl)
        {
            int iErrorCount = 0;
            Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
            if (tBox.Text.Length > 0)
            {
                app.Visible=false;
                // Setting these variables is comparable to passing null to the function.
                // This is necessary because the C# null cannot be passed by reference.
                object template=Missing.Value;
                object newTemplate=Missing.Value;
                object documentType=Missing.Value;
                object visible=true;
                object optional = Missing.Value;
           
                _Document doc = app.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);
                doc.Words.First.InsertBefore (tBox.Text );
                ProofreadingErrors we =  doc.SpellingErrors;
                iErrorCount = we.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);
   
                if (iErrorCount == 0)
                    lLbl.Text = "Spelling is correct. No errors corrected ";
                else if (iErrorCount == 1)
                    lLbl.Text = "Spelling is correct now. 1 error corrected ";
                else
                    lLbl.Text = "Spelling is correct now. " + iErrorCount + " errors corrected ";
                object first=0;
                object last=doc.Characters.Count -1;            
           
                tBox.Text = doc.Range(ref first, ref last).Text;                
            }
            else
                lLbl.Text = "Textbox is empty";

            object saveChanges = false;
            object originalFormat = Missing.Value;
            object routeDocument = Missing.Value;
            app.Quit(ref saveChanges, ref originalFormat, ref routeDocument);
        }

No comments:

Post a Comment