用C#打印Windows窗体中的所有项目

时间:2015-04-23 15:20:45

标签: c# forms printing datagridview

我有一个获胜表单,其中我有一些label,一个datagridview和一些textbox。我想在我的表单中以我在其中显示的确切格式打印我的所有项目形成。我尝试使用我的表格然后打印它。但是通过这种方式,我不能拥有完整的表格,因为我的表格足够大。它只显示我表格的一半。我不知道这是不是最好的做法。还有其他办法吗?这样做请提及

我的示例代码:

private void btnPrint_Click(object sender, EventArgs e)
    {
        CaptureScreen();
        printDocument1.Print();
    }

private void CaptureScreen()
    {
        Graphics myGraphics = this.CreateGraphics();
        Size s = this.Size;
        memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
        Graphics memoryGraphics = Graphics.FromImage(memoryImage);
        memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
    }

 private void printDocument1_PrintPage_1(object sender,  PrintPageEventArgs e)
    {
        e.Graphics.DrawImage(memoryImage, 0, 0);
    }

由于我是C#的新手,如果有人帮我提供一些示例代码,那将会很有帮助。

1 个答案:

答案 0 :(得分:0)

我认为您应该在页面或文本描述语言(如PDF或RTF)中模拟您的表单布局。以编程方式截取屏幕截图既优雅又粗糙,并且遇到了您遇到的限制。

要考虑的一件事是您是否应该序列化您的数据,例如首先作为XML,然后导出为适合打印或显示的数据格式,如PDF或HTML。