如何在C#中将GridView发送到打印机

时间:2009-11-14 05:56:54

标签: c# winforms

如何在C#中将GridView发送到打印机

2 个答案:

答案 0 :(得分:2)

DataGridView是一个控件。据我所知,没有可用的打印功能。

您需要获取数据并将其格式化为报表(使用Crystal Reports或Microsoft Reporting Services之类的内容)。

编辑:以下是有关如何执行此操作的更多信息:http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/dc9d3acf-ccf8-457f-ba31-ef09fb357aee

答案 1 :(得分:1)

您可以使用PrintDocument课程和DataGridView DrawToBitmap(...)方法的组合来完成此操作:

using System.Drawing.Printing;
private void Form1_Load(object sender, EventArgs e)
{
    PrintDocument printer = new PrintDocument();
    printer.PrintPage += printer_PrintPage;
    printer.Print();
}
void printer_PrintPage(object sender, PrintPageEventArgs e)
{
    using (Bitmap bmp = new Bitmap(dataGridView1.Width, 
        dataGridView1.Height))
    {
        dataGridView1.DrawToBitmap(bmp,
            new Rectangle(0, 0, bmp.Width, bmp.Height));
        e.Graphics.DrawImage(bmp, 0, 0);
    }
    e.HasMorePages = false;
}

然而,这可能并不完全符合您的要求,因为这会完全按照您在表单上的显示打印DataGridView(即滚动条可见并且您的大部分数据都不可见)。