Skip to main content

IAutoCorrectService Interface

Defines a service that performs auto correction.

Namespace: DevExpress.XtraRichEdit.Services

Assembly: DevExpress.RichEdit.v23.2.Core.dll

NuGet Packages: DevExpress.RichEdit.Core, DevExpress.Win.Navigation

Declaration

[ComVisible(true)]
public interface IAutoCorrectService

Remarks

The IAutoCorrectService service calls the IAutoCorrectProvider.CalculateAutoCorrectInfo methods of registered providers in a predefined order to obtain an AutoCorrectInfo object. Then, this object is used to perform a replacement.

You can easily add your own table-based autocorrect functionality.

For this, use the GetService method of a control to obtain the IAutoCorrectService. Then, create an AutoCorrectReplaceInfoCollection instance, fill it with pairs from your custom autocorrect table and use the IAutoCorrectService.SetReplaceTable method to register your table for use by the service.

View Example

using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.Services;
            IAutoCorrectService svc = richEditControl1.GetService<IAutoCorrectService>();
            if (svc != null)
                svc.SetReplaceTable(LoadAbbrevs("abbvs.txt"));
        private AutoCorrectReplaceInfoCollection LoadAbbrevs(string path)
        {
            AutoCorrectReplaceInfoCollection coll = new AutoCorrectReplaceInfoCollection();
            string aLine = "";

            AutoCorrectReplaceInfo acrInfoIm = new AutoCorrectReplaceInfo(":-)", CreateImageFromResx("smile.png"));
            coll.Add(acrInfoIm);

            if (File.Exists(path))
            {
                StreamReader sr = new StreamReader(path);
                while (!(sr.EndOfStream))
                {
                    aLine = sr.ReadLine();
                    if (aLine != "START") continue;

                    while (!(sr.EndOfStream))
                    {
                        aLine = sr.ReadLine();
                        aLine = aLine.Trim();
                        string[] words = aLine.Split('=');
                        if (words.Length == 2)
                        {
                            AutoCorrectReplaceInfo acrInfo = new AutoCorrectReplaceInfo(words[0], words[1]);
                            coll.Add(acrInfo);
                        }
                    }
                }
                sr.Close();
            }
            return coll;
        }
See Also