如何在C#中将GridView发送到打印机
答案 0 :(得分:2)
DataGridView是一个控件。据我所知,没有可用的打印功能。
您需要获取数据并将其格式化为报表(使用Crystal Reports或Microsoft Reporting Services之类的内容)。
编辑:以下是有关如何执行此操作的更多信息:http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/dc9d3acf-ccf8-457f-ba31-ef09fb357aee
答案 1 :(得分:1)
您可以使用PrintDocument
课程和DataGridView
DrawToBitmap(...)
方法的组合来完成此操作:
using System.Drawing.Printing;
private void Form1_Load(object sender, EventArgs e)
{
PrintDocument printer = new PrintDocument();
printer.PrintPage += printer_PrintPage;
printer.Print();
}
void printer_PrintPage(object sender, PrintPageEventArgs e)
{
using (Bitmap bmp = new Bitmap(dataGridView1.Width,
dataGridView1.Height))
{
dataGridView1.DrawToBitmap(bmp,
new Rectangle(0, 0, bmp.Width, bmp.Height));
e.Graphics.DrawImage(bmp, 0, 0);
}
e.HasMorePages = false;
}
然而,这可能并不完全符合您的要求,因为这会完全按照您在表单上的显示打印DataGridView
(即滚动条可见并且您的大部分数据都不可见)。