我的应用程序显示分组的线性数据。表示非常简单。 UI分为几个GroupBox,其中数据由TextBoxes和Labels显示。
现在,我想以简单的方式打印数据。我的想法是只打印GroupBoxes并调整对齐方式,以便打印的页面看起来更好一些。
可以为WinForms推荐哪些方法,还是有最佳做法?是否存在任何预定义的帮助程序类?
答案 0 :(得分:5)
您可以使用Control.DrawToBitmap()
方法为控件生成图像,您可以使用PrintDocument.PrintPage
在e.Graphics.DrawImage()
事件处理程序中将其绘制为纸张。
这远远不是一个“最佳实践”。打印机的分辨率远远高于显示器。通常每英寸600点,而不是96.为避免将控件变成邮票,您必须将位图重新调整为6倍。PrintDocument
类默认情况下会这样做。结果是颗粒状的,特别是当以典型的手臂长度观察时,文本看起来很差。您只能使用Graphics.DrawString()
获得外观漂亮的文字。换句话说,编写代码而不是复制位图。有很多报告生成器可以帮助您避免编写代码的乏味。
答案 1 :(得分:0)
更简单的方法是使用Visual Basic PowerPack的PrintForm组件。只需在VS中的工具箱中找到PrintForm组件,然后将其拖到表单的表面即可。多数民众赞成。