質問

スペルチェック機能を持つ.NET用のライブラリ(できれば自己完結型のテキストエディットコントロール)があります。アプリケーションの編集領域で、スペルミスのある単語に典型的な赤い下線を追加したいと思います。

編集:明確にするために、これはWinForms向けです

役に立ちましたか?

解決

レッドラインコントロールではありませんが、 Aspell.Net は無料のオープンソース.Netです。スペルチェックコンポーネント。 GNU Aspellプロジェクトに基づくAspell.Netは、利用可能な最も強力な多言語スペルエンジンの1つです。このAPIはC#で記述されており、AspellのC APIのWin32ポートのC ++ラッパーを介して通信します。

sourceforge 、2010年2月(Tahnks 、@ magnifico)。

2012年5月、ソースにアクセスできなくなりました...申し訳ありません。

他のヒント

Aspell.Netは見た目はいいが、もうメンテナンスされていないようだ。マシンで動作させることができませんでした。

SourceForgeを検索した結果、 NHunspell が見つかりました。これはOpenOfficeのスペルチェックの.Netポートです。 .org。スペルチェック、同義語の検索、ハイフネーションの方法を提供します。現時点では積極的にメンテナンスされており、わかりやすいサンプルコードが付属しています。

プロジェクト独自の言葉で:

  

スペルチェッカー、ハイペネーションおよび   シソーラス:NHunspell

     

NHunspellは無料のオープンソーススペルです   .NET Frameworkのチェッカー。 C#および   Visual Basicサンプルコードが利用可能   スペルチェック、ハイフネーション、   シソーラスを介した同義語検索。

     

NHunspellは、Hunspellと   Open Officeのスペルチェックをもたらします。   ハイフネーションとシソーラス   Microsoft® 。ネットフレームワーク。 NHunspell   .NET(C#、VB)ライブラリおよびラップ   ネイティブライブラリHunspell、Hyphen   およびMyThes。

     

統合ライブラリは   OpenOfficeおよび   に公開された辞書   OpenOffice.org。ライセンス

     

NHunspellは、以下のライセンスを取得しています。   GPL / LGPL / MPL。コマーシャルでの無料使用   申請は   LGPLおよびMPLライセンス。きみの   商用アプリケーションはリンクできます   NHunspell DLLに対して。

NHunspell

William Winnerが作成したNHunspellTextBoxExtenderは機能します。プロジェクトに追加すると、テキストボックスとリッチテキストボックス(TextBoxBaseを継承するコントロール)を拡張するために使用できます。ソースコードも含まれています。

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

これがWebベースの使用であるかデスクトップアプリであるかについては言及しませんでしたが、 netSpellを使用しました。 過去に成功しました。

RapidSpellは http://keyoti.com

でうまく機能しました

Telerik にはASPのコントロールがあります。 NET。

****** Windowsアプリ-独自のテキストボックスコントロールをカスタマイズできます。サードパーティのソフトウェアは不要です******

1-最初にアプリケーションを開きます" Properties&quot ;;ソリューションエクスプローラーの[アプリケーション]の下で、タブで「ターゲットフレームワーク」を確認します。 「.Net Framework 4 Client Profile」ではなく「.Net Framework 4」に設定されています。

2番目に、ソリューションエクスプローラーでアプリケーションを右クリックし、[参照の追加...]を選択します。 「.NET」を選択します;タブを押しながらコントロールキーを押し、「WindowsFormsIntegration」、「System.Design」、「PresentationCore」、「 PresentationFramework"、" WindowsBase"、" System.Xaml" [OK]をクリックします。

3-ソリューションエクスプローラーでアプリケーションを3回右クリックし、[追加]-[>] [クラス]を選択します。好きな名前を付けることができる新しいクラスを作成します。作成したクラスのコードを開き、ファイルではなくコードを削除します。

4-次のコードをコピーして、作成したクラスファイルに貼り付けます。

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」をドラッグアンドドロップします。フォームのデザインビューで。

クライアント側またはサーバー側で使用できるWPFテキストボックスをベースにした無料の.NETスペルチェッカーは、こちら

完全な開示...もちろん、スタックオーバーフローの助けを借りて実際に作成されました:

Infragistics にはスペルチェックコントロール。どのコントロールでもスペルチェックを実行できます。 私自身は使用していませんが、試用版を無料でダウンロードできます。

Component Oneは、これを行うコンポーネントを提供しますが、入力するだけです。私はそれを使用し、それは非常に高速です。

詳細については、こちらをご覧ください

FCKEditorは、優れたテキストエディター(Webベース)です。スペルチェック機能があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top