バージョン

WinSpellChecker を有効にして入力時にスペルチェック

WinSpellChecker エンジンは非常に強力で、エンド ユーザーが入力するテキストをチェックできます。WinSpellChecker は、スペルミスしたワードを Suggestions コレクションからの正しいワードで自動的に置き換えることができます。

これを機能させるには、WinSpellChecker コンポーネントの Mode プロパティを AsYouType または DialogOnValidatingAndAsYouType に設定する必要があります。Mode プロパティをこれらの 2 つの列挙体のひとつに設定することで、エンド ユーザーが入力した時に赤色の波線が付いてスペルミスのワードに下線が付けられることを WinSpellcheck に認識させることができます。

SpellError イベントでは、これらのスペルミスのワードを置き換える、そして置き換え用のテキストのオプションを持ちます。EventArgs の Action プロパティを Replace に設定すると、すべてのスペルエラーを置き換えるように WinSpellChecker に指示します。デフォルトでは、ReplaceWord プロパティを使用してスペルミスのワードを置き換えることを WinSpellChecker に指示しなければ、それ自体でワードを置き換えます。本質的には、ドキュメントのスペルチェックのポイントを無効にします。任意のワードに ReplaceWord を設定すると、ReplaceWord を設定したワードで現在のエラーのスペルミスのワードと置き換えます。スペルミスのワードの Suggestions コレクションで最初のワードに ReplaceWord を設定できます。したがって、エンド ユーザーがスペルミスをすると、WinSpellChecker は相応しいワードで置き換えます。

以下のコードを使用して、WinSpellChecker を有効にし、SpellError イベントを使用することでエンド ユーザーが入力時にスペルミスのワードを自動的に修正します。

Visual Basic の場合:

Imports Infragistics.Win.UltraWinSpellChecker
...
Private Sub UltraSpellChecker1_SpellError(ByVal sender As Object, ByVal e As
  Infragistics.Win.UltraWinSpellChecker.SpellErrorEventArgs)
  Handles UltraSpellChecker1.SpellError
	' 修正候補がないかどうかを確認します。
	' 修正候補がなければ、コードのこの行なしで、
	' ArgumentOutOfRange 例外がスローされます。
	If e.SpellingError.Suggestions.Count = 0 Then
		Return
	End If
	'スペルミスが入力されると、スペルミスのワードを置き換えるように
	' SpellChecker に指示します。
	e.Action = SpellErrorAction.Replace
	'修正候補コレクションの最初の修正候補で
	'スペルミスのワードを置き換えるように SpellChecker に指示します。
	e.ReplaceWord = e.SpellingError.Suggestions(0).ToString()
End Sub

C# の場合:

using Infragistics.Win.UltraWinSpellChecker;
...
private void ultraSpellChecker1_SpellError(object sender, Infragistics.Win.UltraWinSpellChecker.SpellErrorEventArgs e)
{
	// 修正候補がないかどうかを確認します。
	// 修正候補がなければ、コードのこの行なしで、
	// ArgumentOutOfRange 例外がスローされます。
	if (e.SpellingError.Suggestions.Count == 0) return;
	//スペルミスが入力されると、スペルミスのワードを置き換えるように
	//SpellChecker に指示します。
	e.Action = SpellErrorAction.Replace;
	//修正候補コレクションの最初の修正候補で
	//スペルミスのワードを置き換えるように SpellChecker に指示します。
	e.ReplaceWord = e.SpellingError.Suggestions[0].ToString();
}