Back to Devexpress

How To: Add Line Numbering in the Rich Text Editor

windowsforms-116613-controls-and-libraries-rich-text-editor-examples-layout-how-to-add-line-numbering.md

latest4.6 KB
Original Source

How To: Add Line Numbering in the Rich Text Editor

  • Dec 12, 2022
  • 2 minutes to read

The following example illustrates how to specify the RichEdit View and section settings to enable line numbering.

Specify View Parameters

In SimpleView and DraftView, line numbers are located outside the visible area. Set the left padding to a higher value to add space for line numbers. To do that, use the SimpleView.Padding or the DraftView.Padding properties. To enable line numbering, set the RichEditView.AllowDisplayLineNumbers option to true.

csharp
using DevExpress.Portable;
using DevExpress.XtraRichEdit;

// Specify Simple View parameters:
SimpleView simpleView = richEditControl.Views.SimpleView;
simpleView.AllowDisplayLineNumbers = true;
simpleView.Padding = new PortablePadding(60, 0, 0, 0);

// Specify Draft View parameters:
DraftView draftView = richEditControl.Views.DraftView;
draftView.AllowDisplayLineNumbers = true;
draftView.Padding = new PortablePadding(60, 0, 0, 0);
vb
Imports DevExpress.Portable
Imports DevExpress.XtraRichEdit

' Specify Simple View parameters:
Dim simpleView As SimpleView = richEditControl.Views.SimpleView 
simpleView.AllowDisplayLineNumbers = True
simpleView.Padding = New PortablePadding(60, 0, 0, 0)

' Specify Draft View parameters:
Dim draftView As DraftView = richEditControl.Views.DraftView 
draftView.AllowDisplayLineNumbers = True
draftView.Padding = New PortablePadding(60, 0, 0, 0)

Tip

The PrintLayoutView.AllowDisplayLineNumbers property’s default value is true, so you don’t need to adjust view parameters to enable line numbering.

Specify Section Parameters

Use the SectionLineNumbering class properties to specify line numbering parameters for a specific section. The SectionLineNumbering.CountBy property is mandatory.

The Section.LineNumbering property obtains the SectionLineNumbering instance.

The following code snippet enables line numbering for the first section in the loaded document. Line numbering starts at number one and restarts at the new section. Numbers are displayed on each second line and are indented from the text at a distance equal to 0.1 of an inch.

View Example

csharp
using DevExpress.Office;
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
//...

// Change document measure units
// to calculate the line number distance correctly
richEditControl.Document.Unit = DocumentUnit.Inch;

richEditControl.LoadDocument("..\\..\\FirstLook.docx");
richEditControl.DocumentLoaded += RichEditControl_DocumentLoaded;

private void RichEditControl_DocumentLoaded(object sender, System.EventArgs e) {
    Section section = richEditControl.Document.Sections[0];
    SectionLineNumbering lineNumbering = section.LineNumbering;
    lineNumbering.CountBy = 2;
    lineNumbering.Start = 1;
    lineNumbering.Distance = 0.1f;
    lineNumbering.RestartType = LineNumberingRestart.NewSection;
}
vb
Imports DevExpress.Office
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraRichEdit.API.Native
'...

' Change document measure units
' to calculate the line number distance correctly
Dim document As Document = richEditControl.Document
document.Unit = DocumentUnit.Inch
richEditControl.LoadDocument("..\..\FirstLook.docx")
richEditControl.DocumentLoaded += AddressOf RichEditControl_DocumentLoaded

Private Sub RichEditControl_DocumentLoaded(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim sec As Section = richEditControl.Document.Sections(0)
    Dim lineNumbering As SectionLineNumbering = sec.LineNumbering
    lineNumbering.CountBy = 2
    lineNumbering.Start = 1
    lineNumbering.Distance = 0.1F
    lineNumbering.RestartType = LineNumberingRestart.NewSection
End Sub