首页 > 解决方案 > winforms项目中的拼写检查richtextbox

问题描述

我有一个 WinForms 项目,其中包含一个用 VB 编写的 RichTextBox (RTB)
我在 RTB 中设置了 ShortcutsEnabled = FALSE
要使用任何拼写检查器,我猜这需要设置为 TRUE

那不是我的问题!我已经阅读的时间比我愿意承认
的要多得多了解如果你有一个 ASP.Net 或 WPF 项目,拼写检查很容易
好吧我不知道,所以这里是来自 NuGet 的三个候选人这些候选人都没有提供太多帮助
WeCantSpell.HunspellVPKSoft.SpellCheckUtilityNetSpell

我不是在寻求推荐
因为我找不到教程并且对如何用代码实现这些插件一无所知
以及不知道它们是否与 WinForms 兼容
我什至查看了这篇 CP 帖子
CP LINK

只是建议如何使用这些插件之一或如何向 RTB 添加拼写检查?

标签: vb.netwinformsrichtextboxspell-checking

解决方案


要实现拼写检查,您可以尝试 Nuget Package NHunspell

首先,您需要从“NuGet”添加“NHunspell”并导入它。具体操作如下:

右键单击 Reference 并选择“Manage NuGet Packages...”,然后在搜索栏中键入“NHunspell”并安装它:

在此处输入图像描述

第二步,你需要像这样创建一个文件夹来存储“.aff”和“.dic”。

在此处输入图像描述

下载包含相应文件的“zip”,即可访问本站

这是一个你可以参考的演示。

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

结果,

在此处输入图像描述

希望这可以帮到你。


推荐阅读