Spell Checking Richtextbox in Winforms Project

Spell Checking Richtextbox in Winforms Project

I have a WinForms project that contains a RichTextBox (RTB) written with VB
I have set ShortcutsEnabled = FALSE in the RTB
To use any Spell Checker I am guessing this would need to set to TRUE

That is NOT my question! I have been reading for way more hours than I care to admit
With the understanding that Spell Checking is easy if you have a ASP.Net OR WPF project
Well I don't so here are the three candidates from NuGet NONE of these candidates offer much help
WeCantSpell.Hunspell and VPKSoft.SpellCheckUtility and NetSpell

I am not asking for a recommendation
Because I can not find a tutorial and am clueless on how to implement these Add In's with code
As well as NOT knowing if they are compatible with WinForms
I even looked at this CP post
CP LINK

Just a suggestion how to use one of these Add In's OR how to add spell checking to the RTB?

2

1 Answer

To achieve spell checking, you can try Nuget Package NHunspell.

First, you need to add "NHunspell" from "NuGet" and import it. The specific operation is as follows:

Right click the Reference and select "Manage NuGet Packages...", then type "NHunspell " in the search bar and install it:

Second step, you need to create a folder to store ".aff" and ".dic" like this.

Download the "zip" containing the corresponding file, you can access this site.

Here is a demo you can refer to.

Private Sub btCheck_Click(sender As Object, e As EventArgs) Handles btCheck.Click
    Dim affFile As String = AppDomain.CurrentDomain.BaseDirectory & "../../Dictionaries/en_us.aff"
    Dim dicFile As String = AppDomain.CurrentDomain.BaseDirectory & "../../Dictionaries/en_us.dic"
    lbSuggestion.Items.Clear()
    lbmorph.Items.Clear()
    lbStem.Items.Clear()

    Using hunspell As New Hunspell(affFile, dicFile)
        Dim correct As Boolean = hunspell.Spell(TextBox1.Text)
        checklabel.Text = TextBox1.Text + " is spelled " & (If(correct, "correct", "not correct"))

        Dim suggestions As List(Of String) = hunspell.Suggest(TextBox1.Text)
        countlabel.Text = "There are " & suggestions.Count.ToString() & " suggestions"
        For Each suggestion As String In suggestions
            lbSuggestion.Items.Add("Suggestion is: " & suggestion)
        Next

        Dim morphs As List(Of String) = hunspell.Analyze(TextBox1.Text)
        For Each morph As String In morphs
            lbmorph.Items.Add("Morph is: " & morph)
        Next

        Dim stems As List(Of String) = hunspell.Stem(TextBox1.Text)
        For Each stem As String In stems
            lbStem.Items.Add("Word Stem is: " & stem)
        Next
    End Using
End Sub

The result,

Hope this can help you.

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Sophia Al-Mansoor
Author

Sophia Al-Mansoor

Sophia analyzes international trade, startup ecosystems, retail transformation, and supply chain logistics for modern digital publications.