本文档是参考网上的资料,稍加修改,经过实际编译,可实现Winform 上dataGridView 控件的打印,并实现分页,下面为程序代码,仅供参考。本程序不需要在界面上添加任何打印相关控件。 public partial class Example : Form { //打 印 文 檔 PrintDocument pdDocument = new PrintDocument(); //打 印 格 式 設 置 頁 面 PageSetupDialog dlgPageSetup = new PageSetupDialog(); //打 印 頁 面 PrintDialog dlgPrint = new PrintDialog(); //實 例 化 打 印 預 覽 PrintPreviewDialog dlgPrintPreview = new PrintPreviewDialog(); public Example() { InitializeComponent(); pdDocument.PrintPage += new PrintPageEventHandler(OnPrintPage); //頁 面 設 置 的 打 印 文 檔 設 置 為 需 要 打 印 的 文 檔 dlgPageSetup.Document = pdDocument; //打 印 界 面 的 打 印 文 檔 設 置 為 被 打 印 文 檔 dlgPrint.Document = pdDocument; //打 印 預 覽 的 打 印 文 檔 設 置 為 被 打 印 文 檔 dlgPrintPreview.Document = pdDocument; } ///
/// //顯 示 打 印 預 覽 界 面 , 此 处 需 要 添 加 一个打 印 预览的 按钮 /// ///
///
private void btnPrintView_Click(object sender, EventArgs e) { dlgPrintPreview.ShowDialog(); } ///
/// 打 印 设 置 , 此 处 需 要 添 加 一个打 印 设 置 的按钮 /// ///
///
private void btnPrintSetup_Click(object sender, EventArgs e) { dlgPageSetup.ShowDialog(); dlgPrint.ShowDialog(); } /// /// printDocument的PrintPage事件 , 实现打 印 功能 /// /// /// private void OnPrintPage(object sender, PrintPageEventArgs e) { int iX = 60; int iY = 40; PrintDataGridView11.Print(dataGridView1, true, e, ref iX, ref iY); } ///
/// 打 印 , 此 处 需 添 加 一个打 印 按钮 /// ///
///