ISpellChecker.Check(Object, ISpellCheckTextController, Position, Position) Method
Checks the spelling of the text available through the controller interface in the specified range and returns on the first error that occurrs.
Namespace: DevExpress.XtraSpellChecker
Assembly: DevExpress.Data.v24.1.dll
NuGet Package: DevExpress.Data
Declaration
ISpellingErrorInfo Check(
object control,
ISpellCheckTextController controller,
Position from,
Position to
)
Parameters
Name | Type | Description |
---|---|---|
control | Object | An object that is a control to be checked for spelling mistakes. |
controller | DevExpress.XtraSpellChecker.Parser.ISpellCheckTextController | An object implementing the DevExpress.XtraSpellChecker.Parser.ISpellCheckTextController interface providing text to check. |
from | DevExpress.XtraSpellChecker.Parser.Position | A DevExpress.XtraSpellChecker.Parser.Position object containing information on the position where the check statrs. |
to | DevExpress.XtraSpellChecker.Parser.Position | A DevExpress.XtraSpellChecker.Parser.Position object containing information on the position where the check finishes. |
Returns
Type | Description |
---|---|
ISpellingErrorInfo | An object with the ISpellingErrorInfo interface providing information on the error type and position. |
Remarks
using System.Reflection;
using System.Windows.Forms;
using DevExpress.XtraSpellChecker;
using DevExpress.XtraSpellChecker.Parser;
namespace SpellCheckerSample {
public partial class Form1 : Form {
DevExpress.XtraSpellChecker.Native.RichTextBoxTextController controller;
public Form1() {
InitializeComponent();
richTextBox1.LoadFile(Assembly.GetExecutingAssembly().GetManifestResourceStream("SpellCheckerSample.Data.SpellChecker.rtf"), RichTextBoxStreamType.RichText);
controller = new DevExpress.XtraSpellChecker.Native.RichTextBoxTextController(richTextBox1);
FindErrors(new IntPosition(0), new IntPosition(richTextBox1.TextLength));
richTextBox1.TextChanged += OnTextChanged;
}
void FindErrors(Position startPos, Position endPos) {
Position start = startPos.Clone();
Position end = endPos.Clone();
ISpellingErrorInfo errorInfo = null;
do {
errorInfo = ((ISpellChecker)spellChecker1).Check(richTextBox1, controller, start, end);
if (errorInfo != null) {
start = errorInfo.WordEndPosition;
HighlightText(errorInfo.WordStartPosition, errorInfo.WordEndPosition, Color.Red);
}
else
HighlightText(start, end, Color.Black);
} while (errorInfo != null);
}
void HighlightText(Position start, Position end, Color color) {
int cachedSelectionStart = richTextBox1.SelectionStart;
controller.Select(start, end);
richTextBox1.SelectionColor = color;
richTextBox1.SelectionStart = cachedSelectionStart;
richTextBox1.SelectionLength = 0;
}
void OnTextChanged(object sender, System.EventArgs e) {
Position currentPosition = new IntPosition(richTextBox1.SelectionStart);
Position start = GetPrevWordPosition(currentPosition);
Position end = controller.GetNextPosition(currentPosition);
FindErrors(start, end);
}
Position GetPrevWordPosition(Position pos) {
return controller.GetPrevPosition(controller.GetPrevPosition(pos));
}
}
}