RichEditControl.AutoCorrect Event

Fires when text is typed in the control.

Namespace: DevExpress.Xpf.RichEdit

Assembly: DevExpress.Xpf.RichEdit.v20.1.dll

Declaration

public event AutoCorrectEventHandler AutoCorrect
Public Event AutoCorrect As AutoCorrectEventHandler

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.

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
See Also