如何:在 Windows 窗体应用程序中显示打印预览

更新:2007 年 11 月

用户可以使用 PrintPreviewDialog 控件显示文档,通常是在打印前显示文档。

为此,需要指定 PrintDocument 类的一个实例;该类是要打印的文档。有关使用 PrintDocument 组件进行打印预览的更多信息,请参见如何:使用打印预览在 Windows 窗体中进行打印

说明:

要在运行时使用 PrintPreviewDialog 控件,用户必须在计算机上安装打印机(本地安装或通过网络安装),因为这是 PrintPreviewDialog 组件确定打印时文档显示方式的一种方法。

PrintPreviewDialog 控件使用 PrinterSettings 类。此外,与 PrintPreviewDialog 组件一样,PrintPreviewDialog 控件也使用 PageSettings 类。在 PrintPreviewDialog 控件的 Document 属性中指定的打印文档引用 PrinterSettingsPageSettings 类的实例,而这些实例用于在预览窗口中呈现文档。

使用 PrintPreviewDialog 控件查看页

  • 可使用 ShowDialog 方法显示对话框,指定要使用的 PrintDocument

    在下面的代码示例中,Button 控件的 Click 事件处理程序打开 PrintPreviewDialog 控件的实例。打印文档是在 Document 属性中指定的。在下面的示例中,未指定任何打印文档。

    该示例要求窗体具有一个 Button 控件、一个名为 myDocument 的 PrintDocument 组件以及一个 PrintPreviewDialog 控件。

    Private Sub Button1_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button1.Click
       ' The print document 'myDocument' used below
       ' is merely for an example.
       ' You will have to specify your own print document.
       PrintPreviewDialog1.Document = myDocument
       PrintPreviewDialog1.ShowDialog()
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e)
    {
       // The print document 'myDocument' used below
       // is merely for an example.
       // You will have to specify your own print document.
       printPreviewDialog1.Document = myDocument;
       printPreviewDialog1.ShowDialog();
    }
    
    private void button1_Click(Object sender, System.EventArgs e)
    {
       // The print document 'myDocument' used below
       // is merely for an example.
       // You will have to specify your own print document.
       printPreviewDialog1.set_Document(myDocument);
       printPreviewDialog1.ShowDialog();
    }
    
    private:
       void button1_Click(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          // The print document 'myDocument' used below
          // is merely for an example.
          // You will have to specify your own print document.
          printPreviewDialog1->Document = myDocument;
          printPreviewDialog1->ShowDialog();
       }
    

    (Visual C#, Visual C++) 在窗体的构造函数中放置以下代码以注册事件处理程序。

    this.button1.Click += new System.EventHandler(this.button1_Click);
    
    this->button1->Click += gcnew
       System::EventHandler(this, &Form1::button1_Click);
    

请参见

其他资源

PrintDocument 组件(Windows 窗体)

PrintPreviewDialog 控件(Windows 窗体)

Windows Forms Print Support

Windows 窗体