windowsforms-2425-controls-and-libraries-printing-exporting-examples-print-preview-how-to-show-a-progress-bar-during-document-generation.md
This example illustrates how to use the ProgressReflector class (this class is intended to be used only with the documents created with the XtraReports Suite).
The following code invokes a form that contains the ProgressBarControl showing the document generation status. When the document creation is complete, the Progress Bar is hidden and the form shows a print preview.
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraPrinting;
using DevExpress.XtraPrinting.Native;
// ...
private void Form1_Load(object sender, EventArgs e) {
// Create a report and make it
// a document source of the document viewer.
report = new XtraReport1();
documentViewer1.DocumentSource = report;
// Create a form to show a progress bar,
// and adjust its properties.
Form form = new Form() {
FormBorderStyle = FormBorderStyle.None,
Size = new System.Drawing.Size(300, 25),
ShowInTaskbar = false,
StartPosition = FormStartPosition.CenterScreen,
TopMost = true
};
// Create a ProgressBar along with its ReflectorBar.
ProgressBarControl progressBar = new ProgressBarControl();
ReflectorBar reflectorBar = new ReflectorBar(progressBar);
// Add a progress bar to a form and show it.
form.Controls.Add(progressBar);
progressBar.Dock = DockStyle.Fill;
form.Show();
try {
// Register the reflector bar, so that it reflects
// the state of a ProgressReflector.
report.PrintingSystem.ProgressReflector = reflectorBar;
report.CreateDocument();
}
finally {
// Unregister the reflector bar, so that it no longer
// reflects the state of a ProgressReflector.
report.PrintingSystem.ResetProgressReflector();
form.Close();
form.Dispose();
}
}
Imports System.Windows.Forms
Imports DevExpress.XtraEditors
Imports DevExpress.XtraPrinting
Imports DevExpress.XtraPrinting.Native
' ...
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
' Create a report and make it
' a document source of the document viewer.
report = New XtraReport1()
documentViewer1.DocumentSource = report
' Create a form to show a progress bar,
' and adjust its properties.
Dim form As New Form()
form.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None
form.Size = New System.Drawing.Size(300, 25)
form.ShowInTaskbar = False
form.StartPosition = FormStartPosition.CenterScreen
form.TopMost = True
' Create a ProgressBar along with its ReflectorBar.
Dim progressBar As New ProgressBarControl()
Dim reflectorBar As New ReflectorBar(progressBar)
' Add a progress bar to a form and show it.
form.Controls.Add(progressBar)
progressBar.Dock = DockStyle.Fill
form.Show()
Try
' Register the reflector bar, so that it reflects
' the state of a ProgressReflector.
report.PrintingSystem.ProgressReflector = reflectorBar
report.CreateDocument()
Finally
' Unregister the reflector bar, so that it no longer
' reflects the state of a ProgressReflector.
report.PrintingSystem.ResetProgressReflector()
form.Close()
form.Dispose()
End Try
End Sub
See Also