Skip to main content
A newer version of this page is available. .
.NET Framework 4.5.2+

CustomMark Interface

Represents a custom mark in the document.

Namespace: DevExpress.XtraRichEdit.API.Native

Assembly: DevExpress.RichEdit.v19.1.Core.dll


public interface CustomMark


A custom mark enables you to draw attention to a position in a document. A visual element can be painted at the position associated with a custom mark. Custom marks are not saved when a document is exported to any format.

Use the CustomMarkCollection.Create method to create a mark and add it to the SubDocument.CustomMarks collection. Subsequently you can visualize it by handling the CustomMark event.


This code snippet illustrates the use of the SubDocument.CreateCustomMark method and the RichEditControl.CustomMarkDraw event, to add a mark to the selection and draw its visual representation.

Imports DevExpress.XtraRichEdit.API.Native
Imports DevExpress.XtraRichEdit.Layout.Export
Imports System.Drawing.Drawing2D
        Private Sub btn_Mark_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btn_Mark.Click
            Dim doc As Document = richEditControl1.Document
            Dim m As CustomMark = doc.CustomMarks.Create(doc.Selection.Start, Color.DarkOrange)
        End Sub

        Private Sub richEditControl1_CustomMarkDraw(ByVal sender As Object, ByVal e As DevExpress.XtraRichEdit.RichEditCustomMarkDrawEventArgs) Handles richEditControl1.CustomMarkDraw
            For Each info As CustomMarkVisualInfo In e.VisualInfoCollection
                Dim doc As Document = richEditControl1.Document
                Dim mark As CustomMark = doc.CustomMarks.GetByVisualInfo(info)
                e.Graphics.SmoothingMode = SmoothingMode.AntiAlias

                Dim curColor As Color = CType(info.UserData, Color)
                If mark.Position < doc.Selection.Start Then
                    curColor = Color.Green
                End If
                    Dim p As New Pen(curColor, 3)
                    p.StartCap = LineCap.Flat
                    p.EndCap = LineCap.ArrowAnchor
                    e.Graphics.DrawLine(p, New Point(0, info.Bounds.Y), info.Bounds.Location)
            Next info
        End Sub

The following code snippets (auto-collected from DevExpress Examples) contain references to the CustomMark interface.


The algorithm used to collect these code examples remains a work in progress. Accordingly, the links and snippets below may produce inaccurate results. If you encounter an issue with code examples below, please use the feedback form on this page to report the issue.

See Also