InfoConnect for Unisys
Attachmate.Reflection.Productivity Namespace / ISpellCheck Interface / MisspelledWordCollection Property

In This Topic
    MisspelledWordCollection Property
    In This Topic
    Returns a collection of misspelled words from the current host screen.
    ReadOnly Property MisspelledWordCollection As MisspelledWord()
    Dim instance As ISpellCheck
    Dim value() As MisspelledWord
    value = instance.MisspelledWordCollection
    MisspelledWord[] MisspelledWordCollection {get;}
    using System;
    using System.Drawing;
    using System.Collections.Generic;
    using System.Text;
    using Attachmate.Reflection.Framework;
    using Attachmate.Reflection.Emulation.IbmHosts;
    using Attachmate.Reflection.UserInterface;
    using Attachmate.Reflection.Productivity;
    namespace ChangingThemes
        class Program
            static void Main(string[] args)
                //Start a visible instance of InfoConnect or get the instance running at the given channel name
                Application app = MyReflection.CreateApplication("myWorkspace", true);
                //Create a terminal from the session document file
                string sessionPath = Environment.GetEnvironmentVariable("USERPROFILE") + @"\Documents\Micro Focus\InfoConnect\demoSession.rd3x";
                IIbmTerminal terminal = (IIbmTerminal)app.CreateControl(sessionPath);
                //Make the session visible in the workspace
                IFrame frame = (IFrame)app.GetObject("Frame");
                IIbmScreen screen = terminal.Screen;
                IProductivity productivityTools = terminal.Productivity;
                ISpellCheck spelling = terminal.Productivity.SpellCheck;
                //enable SpellCheck
                spelling.Enabled = true;
                spelling.MainLanguage = SpellingLanguage.EnglishUS;
                //Set the maximum number of spelling suggestions for a misspelled word. 
                spelling.MaxSuggestions = 9;
                //Set the minimum length of fields reviewed for spelling errors.
                spelling.MinimumMatch = 5;
                //Specify a custom dictionary
                spelling.CustomDictionaryPath = Environment.GetEnvironmentVariable("USERPROFILE") + @"\Documents\Micro Focus\InfoConnect\customDictionary.tlx";
                //Add a word to the active custom dictionary. 
                //The setting has no effect if a custom dictionary isn't specified. 
                //After a word is added to the custom dictionary, it is no longer considered as being misspelled.
                //Correct a word that begins with a lowercase letter and is followed by all uppercase letters
                spelling.CorrectAccidentalCapsLock = true;
                //Correct a word that begins with two or more uppercase letters 
                //to a word that begins with a single uppercase letter. 
                spelling.CorrectTwoInitialCaps = true;
                //exclude words that contain numerals from a spelling review
                spelling.IgnoreWordsWithNumbers = true;
                //exclude words that use only uppercase letters from a spelling review. 
                spelling.IgnoreAllUppercase = true;
                //Automatically reviews words for spelling errors as they are typed, 
                //adding wavy red lines under possibly misspelled words
                spelling.CheckSpellingAsType = true;
                //automatically correct spelling mistakes as they are typed,
                //provided that Auto Correct suggestions for the misspelled word are available.
                spelling.AutoCorrect = true;
                screen.BeforeSendControlKey += screen_BeforeSendControlKey;
            static void screen_BeforeSendControlKey(object sender, BeforeSendControlKeyEventArgs args)
                IIbmScreen screen = (IIbmScreen)sender;
                ISpellCheck spelling = screen.Parent.Productivity.SpellCheck;
                //Spell check the current screen
                Console.WriteLine("in event");
                MisspelledWord[] words = spelling.MisspelledWordCollection;
                foreach (MisspelledWord word in words)
                    if (word.Word == "PartNo") 
                        //Removing is not working
                        //Removes the specified misspelled word from the misspelled word list and
                        //clears the associated misspelling attribute from the screen.
                        //Replaces a misspelled word with a correctly spelled word at the specified location.
                        spelling.CorrectMisspelling(word, "Part Number");
                //Clear all misspellings from the current screen.
    See Also