Question

Are there any libraries out there (preferably a self contained Text Edit Control) for .NET that have Spell Check capabilities. I would like to add the typical red underline to miss-spelled words in the edit area of my application.

Edit: To clarify, this is for WinForms

Was it helpful?

Solution

Not a redlining control, but: Aspell.Net is a Free and Open Source .Net spell checking component. Based on the GNU Aspell project, Aspell.Net is one of the most powerful multi-lingual spelling engines available. The API is written in C# and communicates through a C++ wrapper around the Win32 Port of Aspell's C API.

Source repository at sourceforge, checked February 2010 (Tahnks, @magnifico).

May 2012, source no longer accessible... sorry.

OTHER TIPS

Aspell.Net looks nice, but does not seem to be maintained anymore. I could not get it to work on my machine.

After searching around SourceForge, I found NHunspell, which is a .Net port of the spell checker from OpenOffice.org. It provides methods to spell check, find synonyms, and hyphenate. Its actively maintained at this time, and comes with easy to understand sample code.

In the project's own words:

Spell Checker, Hypenation and Thesaurus: NHunspell

NHunspell is a free open source spell checker for the .NET Framework. C# and Visual Basic sample code is available for spell checking, hyphenation and synonym lookup via thesaurus.

NHunspell is based on Hunspell and brings the Open Office spell checking, hyphenation and thesaurus to the Microsoft® .NET Framework. NHunspell is a .NET (C#, VB) library and wraps the native libraries Hunspell, Hyphen and MyThes.

The integrated libraries are used in OpenOffice and work with the dictionaries published on OpenOffice.org. License

NHunspell is licensed under: GPL/LGPL/MPL. Free use in commercial applications is permitted according to the LGPL and MPL licenses. Your commercial application can link against the NHunspell DLLs.

NHunspell

NHunspellTextBoxExtender, created by William Winner works. Once added to your project, can be used to extend textboxes and rich textboxes (any control that inherits TextBoxBase). Source code is included as well.

http://www.codeproject.com/KB/recipes/NHunspellExtenderProvider.aspx

You didn't mention whether this was for web based use or a desktop app, but I have used netSpell in the past and had good success.

RapidSpell worked great for me http://keyoti.com

Telerik has a control for ASP.NET.

****** Windows App-You can customize your own textbox Control, No Third Party Software Needed******

1-First open your application "Properties" in solution explorer, under the "Application" tab make sure "target framework" is set to ".Net Framework 4", NOT ".Net Framework 4 Client Profile".

2-Second right click your application in solution explorer and select "Add Reference...". Select the ".NET" tab then hold the control key and select the "WindowsFormsIntegration", "System.Design", "PresentationCore"," PresentationFramework", "WindowsBase","System.Xaml" and click "OK".

3-Third right click your application in solution explorer and select "Add"->"Class". Make a new class you can name it anything you like. Open the code for the class you just made and delete the code, not the file.

4-Forth copy and paste the following code into the class file you just made.

using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Forms.Integration;
using System.Windows.Forms.Design;

[Designer(typeof(ControlDesigner))]
class SpellCheckTextbox: ElementHost
{
    private TextBox box;

    public SpellCheckTextbox()
    {
        box = new TextBox();
        base.Child = box;
        box.TextChanged += (sender, e) => OnTextChanged(EventArgs.Empty);
        box.SpellCheck.IsEnabled = true;
        box.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
        this.Size = new System.Drawing.Size(100, 200);
    }
    public override string Text
    {
        get { return box.Text; }
        set { box.Text = value; }
    }

    [DefaultValue(true)]
    public bool Multiline
    {
        get { return box.AcceptsReturn; }
        set { box.AcceptsReturn = value; }
    }

    [DefaultValue(false)]
    public bool ScrollBars
    {
        get 
        {
            if (box.VerticalScrollBarVisibility == ScrollBarVisibility.Visible ||
                box.HorizontalScrollBarVisibility == ScrollBarVisibility.Visible)
            {
                return true;
            }
            else 
            {
                return false;
            }

        }
        set 
        {
            if (value)
            {
                box.VerticalScrollBarVisibility = ScrollBarVisibility.Visible;
                box.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible;
            }
            else
            {
                box.VerticalScrollBarVisibility = ScrollBarVisibility.Hidden;
                box.HorizontalScrollBarVisibility = ScrollBarVisibility.Hidden;
            }

        }
    }

    [DefaultValue(false)]
    public bool WordWrap
    {
        get { return box.TextWrapping != TextWrapping.NoWrap; }
        set { box.TextWrapping = value ? TextWrapping.Wrap : TextWrapping.NoWrap; }
    }

    [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public new System.Windows.UIElement Child
    {
        get { return base.Child; }
        set { /* Do nothing to solve a problem with the serializer !! */ }
    }

}

5- Fifth, finally last step, compile the code, then drag and drop the new control "SpellCheckTextbox", that is located at the top of the "Toolbox" in design view onto your form.

Free .NET spell checker based around a WPF text box that can be used client or server side can be seen here

Full disclosure...written by yours truly with some help from stack overflow of course :)

Infragistics has a spell checker control that can do spell checking on any control. I haven't used it myself, but you can download a trial version for free.

Component One supply a component that does this but only as you type. I use it and it is very fast.

See here for more info

FCKEditor is a nice text editor (web based). It has spellchecking capabilities.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top