[Expand]General Information
[Collapse]WinForms Controls
  .NET Core Support
 [Expand]What's Installed
 [Expand]Build an Application
 [Collapse]Controls and Libraries
  [Expand]Forms and User Controls
  [Expand]Messages, Notifications, and Dialogs
  [Expand]Editors and Simple Controls
  [Expand]Ribbon, Bars and Menu
  [Expand]Application UI Manager
  [Expand]Docking Library
  [Expand]Data Grid
  [Expand]Vertical Grid
  [Expand]Property Grid
  [Expand]Pivot Grid
  [Expand]Tree List
  [Expand]Gantt Control
  [Expand]Chart Control
  [Expand]Map Control
  [Collapse]Rich Text Editor
   [Expand]Product Information
    Product Class Structure
    Supported Formats
   [Expand]Getting Started
   [Collapse]RichEditControl Document
    [Expand]Document Structure
    [Collapse]Document Elements
      Positions and Ranges
      Inline Pictures
      Text Boxes
      Hyperlinks and Bookmarks
      Headers and Footers
      Range Permissions
      Document Properties
     Measure Units
    Text Formatting
    Import and Export
   [Expand]Page Layout
    Spell Checking
    AutoCorrect Feature
    Track Changes
    Mail Merge
    Restrictions and Protection
   [Expand]Visual Elements
    Keyboard Shortcuts
    HTML Tag Support
  [Expand]Spell Checker
  [Expand]Form Layout Managers
  [Expand]Navigation Controls
  [Expand]PDF Viewer
  [Expand]TreeMap Control
  [Expand]Sunburst Control
 [Expand]Common Features
  Get More Help
 [Expand]API Reference
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)


The RichEditControl supports numbered, bulleted and multilevel lists. This topic shows how to create and format each list type in code and from the User Interface.

Expanded Lists in the User Interface

End users can use the Paragraph group's items on the Home ribbon tab to include or exclude paragraphs from the list.

Right-click the text in the list and select Bullets and Numbering from the context menu to invoke the Bullets and Numbering Dialog. The dialog allows end users to view and customize styles for each list type.


You can restrict end users from creating and customizing lists. Set the DocumentCapabilitiesOptions.Numbering property to DocumentCapability.Disabled or DocumentCapability.Hidden to disable or hide the corresponding commands in the Ribbon UI and the pop-up menu

Expanded List API

You need to use two types of objects to create and manage lists:

  • AbstractNumberingList

    A list pattern that can be used to format multiple lists.

  • NumberingList

    A list that takes settings from a pattern object and can restart or resume list numbering.

Each list object automatically creates nine pre-defined ListLevel objects which can be accessed by the index notation.

The image below shows the connection between AbstractNumberingList and NumberingList objects, and document paragraphs.

The table below lists API used to create lists in code.

API Description
Document.AbstractNumberingLists Provides access to the collection of AbstractNumberingList objects.
AbstractNumberingListCollection.Add Creates a new AbstractNumberingList and adds it to the collection.
NumberingListBase.NumberingType Specifies the list's type (determined by the NumberingType enumerator).
NumberingListBase.Levels Obtains the collection of list levels. Any list type has 9 levels.
ListLevelProperties.DisplayFormatString Specifies a symbol used to mark the list item.
Document.NumberingLists Retrieves the collection of NumberingList objects.
NumberingListCollection.Add Adds a new NumberingList object based on the AbstractNumberingList instance.
ParagraphCollection.AddParagraphToList Adds a paragraph to the specified list and level.
ParagraphCollection.AddParagraphsToList Adds a range of paragraphs to the specified list and level.

Expanded Create a Bulleted List

The code sample below creates a bulleted list and applies it to paragraphs.

Expanded Create a Numbered List

The code sample below creates a numbered list.

Reset the List Item's Numeration

You can create two NumberingList objects based on the same AbstractNumberingList instance and override one of the list's starting number.

Call the OverrideListLevel.SetOverrideStart method for the list level and specify the OverrideListLevel.OverrideStart property.

The code sample below shows how to create two lists based on the same pattern, but with different starting numbers.

Expanded Create a Multilevel List

Expanded Change List Marker's Formatting

The ListLevel.CharacterProperties and ListLevel.ParagraphProperties properties provide access to the level marker's format options. The code sample below shows how to change the indent and the font color for the first list level so it appears as follows.


The ListLevel.CharacterProperties and ListLevel.ParagraphProperties options do not change the format of the level's content. Call the SubDocument.BeginUpdateParagraphs or SubDocument.BeginUpdateCharacters method to change the text formatting. Refer to the Text Formatting topic for examples on how to format text.

Expanded Exclude a Paragraph from the List

Set the Paragraph.ListIndex property to -1 or call the ParagraphCollection.RemoveNumberingFromParagraph method to exclude paragraphs from the list. Pass the target range to the ParagraphCollection.RemoveNumberingFromParagraphs method to exclude multiple paragraphs from the list.

Is this topic helpful?​​​​​​​