Вы можете сделать это, используя комбинацию класса 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
будет напечатан точно так, как он выглядит в вашей форме (т.е. с видимыми полосами прокрутки и большей частью невидимых данных).