Spell Checker

    Any application where end users type free-form prose - CRM notes, support tickets, help-desk replies, CMS articles - eventually ships a typo nobody caught before it went out the door. Catching that in your own editor usually means sourcing a dictionary, tokenizing text, and building the squiggly-underline and suggestion-menu UI yourself, on top of whatever else your app already does. The WinForms HTML Editor solves this by shipping spell checking as a built-in feature of the control. This page shows what you get out of the box and what it costs you in dependencies to turn it on.

    The WinFormHtmlEditor control includes a built-in spell checker for US English. Misspelled words are underlined with a red squiggle as you type; right-click a flagged word to see suggested corrections and choose one to replace it.

    The dictionary is embedded in the control, so there is nothing to install, no native DLLs to ship, and no dictionary files to bundle with your application.

    SpiceLogic WinForms HTML Editor showing a red squiggle under a misspelled word with the right-click suggestion menu open offering corrections.
    SpiceLogic WinForms HTML Editor showing a red squiggle under a misspelled word with the right-click suggestion menu open offering corrections.

    Two ways to check, and you choose per workflow

    Choose between live, as-you-type spell checking and an on-demand modal dialog using a single property:

    // Live, as-you-type squiggles for the agents editor.SpellCheckOptions.FireInlineSpellCheckingOnKeyStroke = true;
    ' Live, as-you-type squiggles for the agents editor.SpellCheckOptions.FireInlineSpellCheckingOnKeyStroke = True

    The dialog mode is always available regardless of that setting - open it via the toolbar's Spell Check button or your own menu command. It steps through each mistake with Change, Change All, Ignore, Ignore All, and Add buttons.

    SpiceLogic WinForms HTML Editor Spell Check dialog showing a misspelled word, ranked suggestion list, and Change, Ignore, and Add to Dictionary buttons.
    SpiceLogic WinForms HTML Editor Spell Check dialog showing a misspelled word, ranked suggestion list, and Change, Ignore, and Add to Dictionary buttons.

    Switching the Spell-Check Language

    Set the SpellCheckLanguage enum on SpellCheckOptions to switch dictionaries, for example by user locale:

    using SpiceLogic.HtmlEditor.Abstractions.Entities.SpellCheck;  private void ApplyAgentLanguage(string agentLocale) {     editor.SpellCheckOptions.SpellCheckLanguage = agentLocale switch     {         "de-DE" => SpellCheckLanguage.German,         "fr-FR" => SpellCheckLanguage.French,         "es-ES" => SpellCheckLanguage.Spanish,         "pt-BR" => SpellCheckLanguage.PortugueseBr,         _ => SpellCheckLanguage.EnglishUs,     }; }

    Embedded languages: English (US and GB), German, French, Spanish, Italian, Dutch, Danish, Polish, Norwegian, Czech, Swedish, and both Portuguese variants. The default, SameAsEditorLanguage, follows the editor's UI language.

    Using a Custom Dictionary File

    For terminology outside the embedded set, point the editor at any OpenOffice-format dictionary pair (.dic / .aff):

    editor.SpellCheckOptions.DictionaryFile.DictionaryFilePath = @"C:\Dictionaries\vet_pl.dic";  editor.SpellCheckOptions.DictionaryFile.AffixFilePath      = @"C:\Dictionaries\vet_pl.aff";

    An on-disk dictionary path always overrides the embedded SpellCheckLanguage value. Clear both paths to revert to the enum-selected language.

    Detecting Spell-Check Completion

    Handle the SpellCheckCompleted event to react when a pass finishes, for example to block save until the document is clean:

    editor.SpellCheckCompleted += (sender, args) =>  {      saveButton.Enabled  = args.MisspelledWordCount == 0;      statusLabel.Text    = args.MisspelledWordCount == 0          ? "Ready to save."          : $"{args.MisspelledWordCount} word(s) need attention.";  };

    Fires at the end of every dialog pass; use it for statistics, progress UI, or workflow gates.

    Controlling Inline Spell-Check Timing

    Inline checking runs as the user types, debounced at 300 ms by default so keystroke bursts do not lag even on large documents. Two methods give explicit control:

    • editor.ForceInlineSpellCheck() - run the inline pass on demand, e.g. after loading content programmatically.
    • editor.CleanUpInlineSpellCheckMarkers() - clear every inline squiggle marker, e.g. before a PDF export or print preview.

    Related Topics

    No extra installer steps, native runtime, or dictionary bundles are required. See User Dictionary and Using a Custom Spell-Check Engine.

    Last updated on May 15, 2026

    Put this into practice.

    .NET WinForms HTML Editor Control ships with free C# and VB.NET sample projects and a 14-day evaluation.

    Prefer a guided look? Book a free live demo with our engineers - live on Zoom or Teams, never a chatbot.