.NET拼写检查控件?

时间:2008-10-31 10:25:06

标签: c# winforms spell-checking

是否有适用于.NET的具有拼写检查功能的库(最好是自包含的文本编辑控件)。我想在我的应用程序的编辑区域中添加典型的红色下划线到拼写错误的单词。

编辑:澄清一下,这是针对WinForms的

11 个答案:

答案 0 :(得分:12)

Aspell.Net看起来不错,但似乎不再维护了。我无法让它在我的机器上工作。

在SourceForge周围搜索后,我找到了NHunspell,它是OpenOffice.org拼写检查程序的.Net端口。它提供了拼写检查,查找同义词和连字符的方法。它在此时积极维护,并提供易于理解的示例代码。

用项目自己的话来说:

  

拼写检查,Hypenation和   词库:NHunspell

     

NHunspell是一个免费的开源咒语   .NET Framework的检查程序。 C#和   Visual Basic示例代码可用   用于拼写检查,连字符和   同义词通过词库查找。

     

NHunspell基于Hunspell和   带来Open Office拼写检查,   连字符和词库   Microsoft®.NETFramework。 NHunspell   是一个.NET(C#,VB)库和包装   本土图书馆Hunspell,Hyphen   和MyThes。

     

使用集成库   OpenOffice并与之合作   发表的词典   OpenOffice.org。许可证

     

NHunspell的许可证如下:   GPL / LGPL / MPL。免费使用商业广告   根据申请是允许的   LGPL和MPL许可证。您的   商业应用可以链接   反对NHunspell DLLs。

NHunspell

答案 1 :(得分:9)

不是redlining控件,但是:Aspell.Net是一个免费和开源的.Net拼写检查组件。基于GNU Aspell项目,Aspell.Net是最强大的多语言拼写引擎之一。 API是用C#编写的,并通过围绕Aspell C API的Win32端口的C ++包装器进行通信。

2010年2月检查的sourceforge的源存储库(Tahnks,@ magnifico)。

2012年5月,来源不再可访问...抱歉。

答案 2 :(得分:6)

NHunspellTextBoxExtender,由William Winner创作。一旦添加到项目中,就可以用于扩展文本框和富文本框(任何继承TextBoxBase的控件)。源代码也包括在内。

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

答案 3 :(得分:2)

您没有提及这是用于基于网络的应用还是桌面应用,但我过去使用过netSpell并取得了很好的成功。

答案 4 :(得分:2)

Telerik具有ASP.NET控件。

答案 5 :(得分:2)

RapidSpell对我很有用http://keyoti.com

答案 6 :(得分:2)

****** Windows应用程序 - 您可以自定义自己的文本框控件,无需第三方软件******

1 - 首先打开你的应用程序"属性"在解决方案资源管理器中,在"应用程序"选项卡确保"目标框架"设置为" .Net Framework 4",NOT" .Net Framework 4 Client Profile"。

2秒在解决方案资源管理器中右键单击您的应用程序,然后选择"添加参考..."。选择" .NET"然后按住控制键并选择" WindowsFormsIntegration"," System.Design"," PresentationCore"," PresentationFramework"," WindowsBase"," System.Xaml"然后单击"确定"。

3-Third右键单击解决方案资源管理器中的应用程序,然后选择"添加" - >" Class"。创建一个新课程,你可以任意命名。打开刚刚创建的类的代码并删除代码,而不是文件。

4-Forth将以下代码复制并粘贴到您刚刚创建的类文件中。

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-第五步,最后一步,编译代码,然后拖放新的控件" SpellCheckTextbox",它位于" Toolbox"的顶部。在设计视图中的表单。

答案 7 :(得分:1)

可以在客户端或服务器端使用基于WPF文本框的免费.NET拼写检查程序here

完全披露......当然是由你的堆栈溢出帮助写的:)

答案 8 :(得分:0)

Infragisticsspell checker control可以对任何控件进行拼写检查。 我自己没有使用它,但你可以免费下载试用版。

答案 9 :(得分:0)

组件一提供执行此操作的组件,但仅在您键入时提供。我用它而且非常快。

有关详细信息,请参阅here

答案 10 :(得分:-1)

FCKEditor是一个不错的文本编辑器(基于Web)。它具有拼写检查功能。