【问题标题】:C#: DataGridView's content does not appear in hard print copyC#:DataGridView 的内容不会出现在硬打印副本中
【发布时间】:2017-03-18 14:25:17
【问题描述】:

我有一个DataGridView,点击打印按钮会显示打印预览,然后点击打印按钮会打印打印预览内容。

问题是我的DataGridView 内容显示在打印预览中,但是当我将其保存为 XPS 文档时。它不显示 DataGridView 内容。虽然页眉和页脚在那里。但只有DataGridView 数据没有打印出来。

这是打印行的代码:

e.Graphics.DrawString(list[i].Sr.ToString(), new Font("Arial", 12), Brushes.Black, new Point(35, yposition));
e.Graphics.DrawString(list[i].Name.ToString(), new Font("Arial", 12), Brushes.Black, new Point(80, yposition));
e.Graphics.DrawString(list[i].Packing.ToString(), new Font("Arial", 12), Brushes.Black, new Point(355, yposition));
e.Graphics.DrawString(list[i].Quantity.ToString(), new Font("Arial", 12), Brushes.Black, new Point(495, yposition));
e.Graphics.DrawString(list[i].Price.ToString(), new Font("Arial", 12), Brushes.Black, new Point(560, yposition));
e.Graphics.DrawString(list[i].TotalAmount.ToString(), new Font("Arial", 12), Brushes.Black, new Point(680, yposition));

我正在使用 Visual Studio 2013

【问题讨论】:

  • 预览后您可能没有重置行索引器,但是该代码看起来像是在打印 List 或 Array 而不是 DGV,您真的需要一个 每个项目的新字体?
  • 我正在使用列表来获取数据网格视图值
  • 请不要在主题标题中使用“C#”等。这就是标签的用途。
  • 可以显示保存码吗?

标签: c# vb.net winforms printing datagridview


【解决方案1】:

你可能在这里做了太多的工作。您可以使用以下简单代码将整个 DataGridView 绘制到 Graphics 对象:

using(Bitmap bmp = new Bitmap(800, 600))
{
  YourDataGridView.DrawToBitmap(bmp, new Rectangle(0, 0, 800, 600);
  e.Graphics.DrawImageUnscaled(bmp, 0, 0);
}

这应该适用于 PrintPreview 和 Print。

【讨论】:

  • 我希望这看起来很糟糕。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多