如何:创建标准的 Windows 窗体打印作业

更新:2007 年 11 月

在 Windows 窗体中进行打印的基础是 PrintDocument 组件,更具体地说,是 PrintPage 事件。通过编写代码来处理 PrintPage 事件,可以指定打印内容和打印方式。

创建打印作业

  1. 向窗体添加 PrintDocument 组件。

  2. 编写代码以处理 PrintPage 事件。

    您将必须编写您自己的打印逻辑代码。另外,将必须指定要打印的材料。

    在下面的代码示例中,在 PrintPage 事件处理程序中创建一个红色矩形的示例图形作为要打印的材料。

    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
       e.Graphics.FillRectangle(Brushes.Red, New Rectangle(500, 500, 500, 500))
    End Sub
    
    private void printDocument1_PrintPage(object sender, 
    System.Drawing.Printing.PrintPageEventArgs e)
    {
       e.Graphics.FillRectangle(Brushes.Red, 
         new Rectangle(500, 500, 500, 500));
    }
    
    private void printDocument1_PrintPage(Object sender,
    System.Drawing.Printing.PrintPageEventArgs e)
    {
       e.get_Graphics().FillRectangle(Brushes.get_Red(),
          new Rectangle(500, 500, 500, 500));
    }
    
    private:
       void printDocument1_PrintPage(System::Object ^ sender,
          System::Drawing::Printing::PrintPageEventArgs ^ e)
       {
          e->Graphics->FillRectangle(Brushes::Red,
             Rectangle(500, 500, 500, 500));
       }
    

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

    this.printDocument1.PrintPage += new
       System.Drawing.Printing.PrintPageEventHandler
       (this.printDocument1_PrintPage);
    
    this.printDocument1.add_PrintPage(new
       System.Drawing.Printing.PrintPageEventHandler
       (this.printDocument1_PrintPage));
    
    printDocument1->PrintPage += gcnew
       System::Drawing::Printing::PrintPageEventHandler
       (this, &Form1::printDocument1_PrintPage);
    

    可能还要为 BeginPrintEndPrint 事件编写代码,也许还包括一个表示要打印的总页数的整数,该整数随着每一页的打印而递减。

    a585x1he.alert_note(zh-cn,VS.90).gif说明:

    可以向窗体添加一个 PrintDialog 组件,以便为用户提供整洁高效的用户界面 (UI)。通过设置 PrintDialog 组件的 Document 属性,可以设置与正在窗体上处理的打印文档相关的属性。有关 PrintDialog 组件的更多信息,请参见 PrintDialog 组件(Windows 窗体)

    有关 Windows 窗体打印作业的具体细节的更多信息,包括如何以编程方式创建打印作业,请参见 PrintPageEventArgs

请参见

参考

PrintDocument

其他资源

Windows 窗体打印支持