Skip to main content

DevExpress v24.1 Update — Your Feedback Matters

Our What's New in v24.1 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

XRControl.PrintOnPage Event

Occurs when the representation of a control is printed on the current page of the report.

Namespace: DevExpress.XtraReports.UI

Assembly: DevExpress.XtraReports.v24.1.dll

NuGet Package: DevExpress.Reporting.Core

#Declaration

public virtual event PrintOnPageEventHandler PrintOnPage

#Event Data

The PrintOnPage event's data class is PrintOnPageEventArgs. The following properties provide information specific to this event:

Property Description
Cancel Gets or sets a value indicating whether the event should be canceled. Inherited from CancelEventArgs.
PageCount Gets the number of all pages presented in the created report.
PageIndex Gets the index of the current page which the control will be printed on.

#Remarks

Use this event to perform actions when a control is printed on a particular page in a report. The current page index can be accessed via the PrintOnPageEventArgs.PageIndex property. The PrintOnPageEventArgs.PageCount property is also available, since the event is raised for the current control after all the document pages are created.

When using the CachedReportSource component to generate a report document, the PrintOnPage event is raised each time a page with the current control is created. In this connection, the total number of pages is unknown at the moment the event fires and you cannot use the PrintOnPageEventArgs.PageCount property in the event handler.

Note

Note, however, that changing a control’s contents at this event will not change a report’s layout (locations and sizes of bricks in a final document), since the report document is already created at this time.

The PrintOnPage event is raised along with the other associated events which are listed below in the order that they are raised:

To learn more, see Report Events.

#Example

The following example demonstrates how to use the XRControl.PrintOnPage event. The event handler below checks if an xrLabel1 is being printed on the last page (in case the PrintOnPageEventArgs.PageCount property is equal to PrintOnPageEventArgs.PageIndex minus 1), and, if yes, sets its text to “The last page!”. Otherwise, it checks if a label is being printed on the odd page, and, if yes, it cancels its printing.

using DevExpress.XtraReports.UI;
// ...

private void xrLabel1_PrintOnPage(object sender, PrintOnPageEventArgs e) {
    // Check if the label is printed on the last page.
    // Note that the PageCount property value is not valid if you
    // use the CachedReportSource component to generate a report document
    if (e.PageIndex == e.PageCount-1)
        // Set its text.
        ((XRLabel)sender).Text = "The last page!";
    else
        // Check if the label is printed on the odd page.
        if (e.PageIndex % 2 == 0)
            // Cancel its printing.
            e.Cancel = true;
}
See Also