Back to Devexpress

IAutoCorrectService Interface

officefileapi-devexpress-dot-xtrarichedit-dot-services-2a5bf00b.md

latest5.1 KB
Original Source

IAutoCorrectService Interface

Defines a service that performs auto correction.

Namespace : DevExpress.XtraRichEdit.Services

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

NuGet Package : DevExpress.RichEdit.Core

Declaration

csharp
[ComVisible(true)]
public interface IAutoCorrectService
vb
<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

csharp
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;
        }
vb
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraRichEdit.Services
            Dim svc As IAutoCorrectService = richEditControl1.GetService(Of IAutoCorrectService)()
            If svc IsNot Nothing Then
                svc.SetReplaceTable(LoadAbbrevs("abbvs.txt"))
            End If
        Private Function LoadAbbrevs(ByVal path As String) As AutoCorrectReplaceInfoCollection
            Dim coll As New AutoCorrectReplaceInfoCollection()
            Dim aLine As String = ""

            Dim acrInfoIm As New AutoCorrectReplaceInfo(":-)", CreateImageFromResx("smile.png"))
            coll.Add(acrInfoIm)

            If File.Exists(path) Then
                Dim sr As New StreamReader(path)
                Do While Not(sr.EndOfStream)
                    aLine = sr.ReadLine()
                    If aLine <> "START" Then
                        Continue Do
                    End If

                    Do While Not(sr.EndOfStream)
                        aLine = sr.ReadLine()
                        aLine = aLine.Trim()
                        Dim words() As String = aLine.Split("="c)
                        If words.Length = 2 Then
                            Dim acrInfo As New AutoCorrectReplaceInfo(words(0), words(1))
                            coll.Add(acrInfo)
                        End If
                    Loop
                Loop
                sr.Close()
            End If
            Return coll
        End Function

See Also

IAutoCorrectService Members

SetReplaceTable(AutoCorrectReplaceInfoCollection)

DevExpress.XtraRichEdit.Services Namespace