Back to Devexpress

DocumentLayout.DocumentFormatted Event

officefileapi-devexpress-dot-xtrarichedit-dot-api-dot-layout-dot-documentlayout.md

latest7.4 KB
Original Source

DocumentLayout.DocumentFormatted Event

Fires after the document layout is calculated.

Namespace : DevExpress.XtraRichEdit.API.Layout

Assembly : DevExpress.RichEdit.v25.2.Core.dll

NuGet Package : DevExpress.RichEdit.Core

Declaration

csharp
public event EventHandler DocumentFormatted
vb
Public Event DocumentFormatted As EventHandler

Event Data

The DocumentFormatted event's data class is EventArgs.

Remarks

Handle this event to check layout-dependent information, data and objects.

We do not recommend using this event to edit the document. Handle the RichEditControl.ContentChanged (RichEditControl.ContentChanged for WPF) or RichEditControl.DocumentLoaded (RichEditControl.DocumentLoaded for WPF) event instead.

Call the GetFormattedPageCount method in the event handler to retrieve a number of formatted pages.

Important

The DocumentFormatted event handler is running in a background (non-UI) thread. Use the RichEditControl.BeginInvoke or Dispatcher.BeginInvoke (WPF) method to avoid concurrency issues. Access the Dispatcher.BeginInvoke method using the RichEditControl.Dispatcher property.

WinForms Example

View Example

csharp
private void DocumentLayout_DocumentFormatted(object sender, EventArgs e)
{

    richEditControl1.BeginInvoke(new Action(() =>
    {
        int pageCount = richEditControl1.DocumentLayout.GetFormattedPageCount();
        for (int i = 0; i < pageCount; i++)
        {
            MyDocumentLayoutVisitor visitor = new MyDocumentLayoutVisitor();
            visitor.Visit(richEditControl1.DocumentLayout.GetPage(i));
        }
    }));
}
vb
Private Sub DocumentLayout_DocumentFormatted(ByVal sender As Object, ByVal e As EventArgs)

    richEditControl1.BeginInvoke(New Action(Sub()
        Dim pageCount As Integer = richEditControl1.DocumentLayout.GetFormattedPageCount()
        For i As Integer = 0 To pageCount - 1
            Dim visitor As New MyDocumentLayoutVisitor()
            visitor.Visit(richEditControl1.DocumentLayout.GetPage(i))
        Next i
    End Sub))
End Sub

WPF Example

csharp
private void DocumentLayout_DocumentFormatted(object sender, EventArgs e)
{

   richEdit.Dispatcher.BeginInvoke(new Action(() =>
   {
     int pageCount = richEdit.DocumentLayout.GetFormattedPageCount();
     for (int i = 0; i < pageCount; i++)
     {
       MyDocumentLayoutVisitor visitor = new MyDocumentLayoutVisitor();
       visitor.Visit(richEdit.DocumentLayout.GetPage(i));
     }
   }));
}
vb
Private Sub DocumentLayout_DocumentFormatted(ByVal sender As Object, ByVal e As EventArgs)

    richEdit.Dispatcher.BeginInvoke(New Action(Sub()
        Dim pageCount As Integer = richEdit.DocumentLayout.GetFormattedPageCount()
        For i As Integer = 0 To pageCount - 1
             Dim visitor As New MyDocumentLayoutVisitor()
             visitor.Visit(richEdit.DocumentLayout.GetPage(i))
             Next i
        End Sub))
End Sub

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

Note

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.

winforms-richedit-emulate-the-ms-word-status-bar/CS/WindowsFormsApplication1/Form1.cs#L21

csharp
richEditControl1.SelectionChanged += richEditControl1_SelectionChanged;
    richEditControl1.DocumentLayout.DocumentFormatted += DocumentLayout_DocumentFormatted;
}

winforms-richedit-layout-api/CS/Form1.cs#L17

csharp
richEditControl1.LoadDocument("Grimm.docx");
    richEditControl1.DocumentLayout.DocumentFormatted += DocumentLayout_DocumentFormatted;
}

winforms-richedit-enable-line-numbering-and-count-document-rows/CS/LineNumberingExample/Form1.cs#L23

csharp
richEditControl1.DocumentLoaded += RichEditControl1_DocumentLoaded;
    richEditControl1.DocumentLayout.DocumentFormatted += DocumentLayout_DocumentFormatted;
}

winforms-richedit-emulate-the-ms-word-status-bar/VB/WindowsFormsApplication1/Form1.vb#L20

vb
AddHandler richEditControl1.SelectionChanged, AddressOf richEditControl1_SelectionChanged
    AddHandler richEditControl1.DocumentLayout.DocumentFormatted, AddressOf DocumentLayout_DocumentFormatted
End Sub

winforms-richedit-layout-api/VB/Form1.vb#L152

vb
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    AddHandler richEditControl1.DocumentLayout.DocumentFormatted, AddressOf DocumentLayout_DocumentFormatted
End Sub

winforms-richedit-enable-line-numbering-and-count-document-rows/VB/LineNumberingExample/Form1.vb#L19

vb
AddHandler richEditControl1.DocumentLoaded, AddressOf RichEditControl1_DocumentLoaded
    AddHandler richEditControl1.DocumentLayout.DocumentFormatted, AddressOf Me.DocumentLayout_DocumentFormatted
End Sub

See Also

ContentChanged

DocumentLayout Class

DocumentLayout Members

DevExpress.XtraRichEdit.API.Layout Namespace