officefileapi-devexpress-dot-xtrarichedit-dot-services-2a5bf00b.md
Defines a service that performs auto correction.
Namespace : DevExpress.XtraRichEdit.Services
Assembly : DevExpress.RichEdit.v25.2.Core.dll
NuGet Package : DevExpress.RichEdit.Core
[ComVisible(true)]
public interface IAutoCorrectService
<ComVisible(True)>
Public Interface IAutoCorrectService
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.
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;
}
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