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

Sys*_*ata 3 c# winforms

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

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

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

Han*_*ant 5

您可以使用该Control.DrawToBitmap()方法为控件生成图像,您可以在PrintDocument.PrintPage事件处理程序中使用该图像绘制到纸张e.Graphics.DrawImage().

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