如何打印表格的特定区域?

时间:2011-06-19 13:08:33

标签: c# winforms

我的应用程序显示分组的线性数据。表示非常简单。 UI分为几个GroupBox,其中数据由TextBoxes和Labels显示。

现在,我想以简单的方式打印数据。我的想法是只打印GroupBoxes并调整对齐方式,以便打印的页面看起来更好一些。

可以为WinForms推荐哪些方法,还是有最佳做法?是否存在任何预定义的帮助程序类?

2 个答案:

答案 0 :(得分:5)

您可以使用Control.DrawToBitmap()方法为控件生成图像,您可以使用PrintDocument.PrintPagee.Graphics.DrawImage()事件处理程序中将其绘制为纸张。

这远远不是一个“最佳实践”。打印机的分辨率远远高于显示器。通常每英寸600点,而不是96.为避免将控件变成邮票,您必须将位图重新调整为6倍。PrintDocument类默认情况下会这样做。结果是颗粒状的,特别是当以典型的手臂长度观察时,文本看起来很差。您只能使用Graphics.DrawString()获得外观漂亮的文字。换句话说,编写代码而不是复制位图。有很多报告生成器可以帮助您避免编写代码的乏味。

答案 1 :(得分:0)

更简单的方法是使用Visual Basic PowerPack的PrintForm组件。只需在VS中的工具箱中找到PrintForm组件,然后将其拖到表单的表面即可。多数民众赞成。