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

标签 c# winforms

我的应用程序显示分组的线性数据。表示相当简单。 UI 分为几个 GroupBox,其中数据由 TextBox 和 Label 显示。

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

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

最佳答案

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

从长远来看,这不是“最佳实践”。打印机的分辨率远高于显示器。通常每英寸 600 点与 96 点。为避免将控件变成邮票,您必须将位图重新缩放 6 倍。PrintDocument 类默认这样做。结果是颗粒状的,尤其是当以典型的一臂距离观看时,文本看起来很差。您只能使用 Graphics.DrawString() 获得好看的文本。换句话说,编写代码而不是复制位图。有大量可用的报告生成器可帮助您避免编写代码的乏味工作。

关于c# - 如何打印表格的特定区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6402523/

相关文章:

c# - PropertyDescriptor.SetValue 在 ModelBinder 中不起作用

c# - 如何仅在 XAML 中设置上边距?

c# - .NET 将一系列字符添加到列表中

c# - 如何更改 Windows 窗体应用程序中的拖动阈值?

c# - 将 IME 放在派生自 Control 的自定义文本框中

winforms - 显示窗体和控件的缩放比例和大小

c# - 如何允许用户编辑列表框中的项目?

c# - SQL Server 标识列在没有插入的情况下递增

c# - 如何在没有 "process has exited"异常的情况下终止进程?

c# - 多行组合框下拉列表