【发布时间】:2010-10-08 08:26:35
【问题描述】:
我对 .NET 和 C# 还很陌生,但我有一个要打印的 DataGridView。这样做的最佳方法是什么?
【问题讨论】:
-
@Simon 感谢您添加更多标签! :o)
标签: winforms printing .net-3.5 datagridview
我对 .NET 和 C# 还很陌生,但我有一个要打印的 DataGridView。这样做的最佳方法是什么?
【问题讨论】:
标签: winforms printing .net-3.5 datagridview
然后添加一个 DataGridView、一个 PrintDocuemnt 和一个 Button:
button click events {
printDocument1.Print();
}
printDocument1_PrintPage events {
Bitmap bm = new Bitmap(this.dataGridView1.Width, this.dataGridView1.Height);
this.dataGridView1.DrawToBitmap(bm, new Rectangle(0, 0, this.dataGridView1.Width, this.dataGridView1.Height));
e.Graphics.DrawImage(bm, 0, 0);
}
这就是你所有的数据打印。
【讨论】:
CodeProject 上有一些项目已经完成了一些打印 DataGridViews 的工作。
【讨论】:
我知道你已经接受了一个答案,但是对于下一个搜索这个问题的人......
我也在 Code Project 上找到了这个很棒的项目,并且刚刚实现了它。这很容易而且很好。 http://www.codeproject.com/KB/grid/GridDrawer.Net.aspx
【讨论】:
上面是另一个出色的DataGridView 打印机,实现起来非常简单。
我意识到我是这个帖子的Johnny Come Lately。我在寻找其他东西时偶然发现了它,但想为其他通过这种方式发生的人(就像我一样)参考这个出色的打印解决方案。
我希望这里有人能从中得到一些用处。
【讨论】:
您可以将 DataGridView 导出到 Excel,然后从 Excel 中打印出来。
您也可以考虑不在 DataGridView 中显示您的数据,而是在 ReportViewer 控件中显示它,该控件可以导出为 PDF 或 Excel。从那里可以打印您的数据。
【讨论】:
恐怕没有内置的打印支持。
您可能会求助于使用第三方控件,例如 Infragistics WinGrid,它具有内置的打印支持。
【讨论】:
.NET WinForm 控件(如 datagridview)本身不支持打印。
但是,对于 datagridview,您可以调用“DrawToBitmap”,然后获取该位图并将其传递给打印功能,以便在纸上生成它。
【讨论】:
如果您要打印的不仅仅是 DataGridView,那么更通用的方法可能值得追求。我们使用 MigraDoc,然后编写自己的类来读取 DataGridViews 并输出表示表格的 MigraDoc 类。
有很多很棒的打印包可用,但我只有使用 MigraDoc 的经验。
编辑:
作为对 cmets 的回应,这里是我网站的链接,其中显示了我为生成 MigraDoc 表而创建的代码以及使用它来显示 DataGridView (DataGridView to MigraDoc tables) 的示例。
【讨论】:
我喜欢这种方法http://www.codeproject.com/KB/grid/GridDrawer.Net.aspx但是有什么方法可以选择打印机。
我想在进程结束时自动打印。所以计划选择这个作为选项 1,所以我总是可以打印到默认打印机。另一个选项是选择打印机然后打印。所以总共有 2 个 ptint 函数。 请回复。 干杯
【讨论】: