4.2 KiB
title, ms.date, f1_keywords, helpviewer_keywords, ms.assetid
| title | ms.date | f1_keywords | helpviewer_keywords | ms.assetid | ||
|---|---|---|---|---|---|---|
| PrintPreviewDialog Control Overview | 01/08/2018 |
|
|
efd4ee8d-6edd-47ec-88e4-4a4759bd2384 |
PrintPreviewDialog control overview (Windows Forms)
The Windows Forms xref:System.Windows.Forms.PrintPreviewDialog control is a pre-configured dialog box used to display how a PrintDocument will appear when printed. Use it within your Windows-based application as a simple solution instead of configuring your own dialog box. The control contains buttons for printing, zooming in, displaying one or multiple pages, and closing the dialog box.
Key properties and methods
The control's key property is xref:System.Windows.Forms.PrintPreviewDialog.Document%2A, which sets the document to be previewed. The document must be a xref:System.Drawing.Printing.PrintDocument object. In order to display the dialog box, you must call its xref:System.Windows.Forms.Form.ShowDialog%2A method. Anti-aliasing can make the text appear smoother, but it can also make the display slower; to use it, set the xref:System.Windows.Forms.PrintPreviewDialog.UseAntiAlias%2A property to true.
Certain properties are available through the xref:System.Windows.Forms.PrintPreviewControl that the xref:System.Windows.Forms.PrintPreviewDialog contains. (You do not have to add this xref:System.Windows.Forms.PrintPreviewControl to the form; it is automatically contained within the xref:System.Windows.Forms.PrintPreviewDialog when you add the dialog to your form.) Examples of properties available through the xref:System.Windows.Forms.PrintPreviewControl are the xref:System.Windows.Forms.PrintPreviewControl.Columns%2A and xref:System.Windows.Forms.PrintPreviewControl.Rows%2A properties, which determine the number of pages displayed horizontally and vertically on the control. You can access the xref:System.Windows.Forms.PrintPreviewControl.Columns%2A property as PrintPreviewDialog1.PrintPreviewControl.Columns in Visual Basic, printPreviewDialog1.PrintPreviewControl.Columns in Visual C#, or printPreviewDialog1->PrintPreviewControl->Columns in Visual C++.
PrintPreviewDialog performance
Under the following conditions, the xref:System.Windows.Forms.PrintPreviewDialog control initializes very slowly:
- A network printer is used.
- User preferences for this printer, such as duplex settings, are modified.
For apps running on the .NET Framework 4.5.2, you can add the following key to the <appSettings> section of your configuration file to improve the performance of xref:System.Windows.Forms.PrintPreviewDialog control initialization:
<appSettings>
<add key="EnablePrintPreviewOptimization" value="true" />
</appSettings>
If the EnablePrintPreviewOptimization key is set to any other value, or if the key is not present, the optimization is not applied.
For apps running on the .NET Framework 4.6 or later versions, you can add the following switch to the <AppContextSwitchOverrides> element in the <runtime> section of your app config file:
<runtime >
<!-- AppContextSwitchOverrides values are in the form of 'key1=true|false;key2=true|false -->
<AppContextSwitchOverrides value = "Switch.System.Drawing.Printing.OptimizePrintPreview=true" />
</runtime >
If the switch is not present or if it is set to any other value, the optimization is not applied.
If you use the xref:System.Drawing.Printing.PrintDocument.QueryPageSettings event to modify printer settings, the performance of the xref:System.Windows.Forms.PrintPreviewDialog control will not improve even if an optimization configuration switch is set.