在C#中打印控件的内容?

我从未使用C#打印任何东西。 我只是想知道这样做的标准方法是什么。 在我的表单上,我有一些列表框和一些文本框。 我想打印他们的内容并在打印预览中显示它们,在表格中有一个很好的布局。 然后从他们我希望用户能够打印。

提前致谢!

您将需要使用System.Drawing.Printing库。 您将使用PrintDocument.Print方法,您可以在带有示例的MSDN页面上找到该方法

这是一个关于C#基本打印的精彩小教程 。 它处理文本,但可以轻松扩展以绘制其他任何内容。

使用C#进行打印与使用C#进行自定义绘制非常相似。 最大的区别在于坐标系统从屏幕表示中翻转,并且您必须考虑页面的跨越(如果/在必要时)。您打印的方式也有点反直觉,因为您必须启动打印过程然后处理页面打印事件。

例:

下面是一个打印事件处理程序的简单示例,该处理程序假定存在名为listBox1的列表框控件,其中包含一些项目。 它绘制每个项目以及它周围的框。

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { Font font = new Font("Arial", 10f); Graphics g = e.Graphics; Pen rectPen = new Pen(Color.Black, 2f); Brush brush = Brushes.Black; // find widest width of items for (int i=0; i 

在具有Print实现的CodeProject中 , 很好地总结了一种方法。 至于Print Preview,有人在这里处理了一个实现 。