只要添加2010里面的printDocument打印控件 具体代码: GridPrinter gridPrinter; private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { bool more = gridPrinter.DrawDataGridView(e.Graphics); if (more == true) e.HasMorePages = true; } private bool InitializePrinting() { PrintDialog printDialog = new PrintDialog(); printDialog.AllowCurrentPage = true; printDialog.AllowPrintToFile = true; printDialog.AllowSelection = true; printDialog.AllowSomePages = true; printDialog.PrintToFile = false; printDialog.ShowHelp = true; printDialog.ShowNetwork = true; if (printDialog.ShowDialog() != DialogResult.OK) return false; printDocument1.DocumentName = "单位绩效工资"; printDocument1.PrinterSettings = printDialog.PrinterSettings; printDocument1.DefaultPageSettings = printDialog.PrinterSettings.DefaultPageSettings; printDocument1.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(40, 40, 40, 40); gridPrinter = new GridPrinter(dataGridXinJi, printDocument1, true, true, "单位绩效工资", new Font("黑体", 18, FontStyle.Bold, GraphicsUnit.Point), Color.Blue, true); return true; } //打印事件 private void Dy_Click(object sender, EventArgs e) { #region 打印信息 if (dataGridUnit.Rows.Count > 0) { if (InitializePrinting()) { PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog(); printPreviewDialog.Document = printDocument1; printPreviewDialog.ShowDialog(); } } #endregion }