在Winform C#中打印DataGridView

时间:2017-02-04 06:59:11

标签: winforms datagridview

我正在尝试通过制作位图图像来打印Datagridview,它工作得很好,但它只打印1页打印。

这是DataGirdView Image:

enter image description here

打印预览图片

enter image description here

这里是打印 - 从DataGridView行到最后没有总行到最后一行只有1页

打印代码

 private void Btn_Print_Click(object sender, EventArgs e)
        {
            int height = DGV.Height;
            DGV.Height = DGV.RowCount * DGV.RowTemplate.Height * 2;
            bmp = new Bitmap(DGV.Width, DGV.Height);
            DGV.DrawToBitmap(bmp, new Rectangle(0, 0, DGV.Width, DGV.Height));
            DGV.Height = height;
            printPreviewDialog1.ShowDialog();       

        }

        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            e.Graphics.DrawImage(bmp, 0, 0);
        }  

为什么不在1页以上打印数据?代码有什么问题吗?请提出建议

谢谢。

1 个答案:

答案 0 :(得分:1)

从DataGridView打印多个页面并不是最简单的事情,因此我建议您使用现有的代码示例之一。这里有几个好的,易于使用,可以打印多个页面:

此SO问题提供了更多示例:

Best way to print a datagridview with all rows and all columns?