RichEditControl.AutoCorrect Event
Fires when text is typed in the control.
Namespace: DevExpress.Xpf.RichEdit
Assembly: DevExpress.Xpf.RichEdit.v22.1.dll
NuGet Package: DevExpress.Wpf.RichEdit
Declaration
Event Data
The AutoCorrect event's data class is AutoCorrectEventArgs. The following properties provide information specific to this event:
Property | Description |
---|---|
AutoCorrectInfo | Gets or sets the AutoCorrectInfo object that provides methods to analyze input text and contains a replacement object. |
The event data class exposes the following methods:
Method | Description |
---|---|
CreateAutoCorrectInfo() | Allows you to create a new AutoCorrectInfo instance for use within the event handler. |
Remarks
Handle the AutoCorrect event to implement complex replacements as you type.
The RichEditControl.AutoCorrect
event is handled to replace the typed $ symbol with a picture of a dollar, and substitute the text enclosed in percent symbols with custom content.
To accomplish this task, a document text obtained via the AutoCorrectEventArgs.AutoCorrectInfo property is amended by expanding its left boundary using the AutoCorrectInfo.DecrementStartPosition method, until a special symbol or a word separator symbol is found. If a resulting string meets certain conditions, such as whether it is a dollar sign or a %date% string, a replacement object is passed to the document via the AutoCorrectInfo.ReplaceWith property. A replacement object can be a string or an image.
Private Sub richEditControl1_AutoCorrect(ByVal sender As Object, ByVal e As DevExpress.XtraRichEdit.AutoCorrectEventArgs)
Dim info As AutoCorrectInfo = e.AutoCorrectInfo
e.AutoCorrectInfo = Nothing
If info.Text.Length <= 0 Then
Return
End If
Do
If Not info.DecrementStartPosition() Then
Return
End If
If IsSeparator(info.Text(0)) Then
Return
End If
If info.Text(0) = "$"c Then
info.ReplaceWith = CreateImageFromResx("dollar_pic.png")
e.AutoCorrectInfo = info
Return
End If
If info.Text(0) = "%"c Then
Dim replaceString As String = CalculateFunction(info.Text)
If Not String.IsNullOrEmpty(replaceString) Then
info.ReplaceWith = replaceString
e.AutoCorrectInfo = info
End If
Return
End If
Loop
End Sub