Te iba a poner los códigos que nosotros usamos, pero preferí ir a la fuente... MSDN
Este es un código que permite tomar un DataGrid del form e imprimirlo. Es simple y eficiente y está preparado para VS 2003. Nosotros desarrollamos la idea en algunos casos para crear dinámicamente un DataGrid en memoria y usarlo para exportar, modificando las dimensiones de la hoja de salida, o bien paginando según fuera necesario:
Código vb.net:
Ver originalPrivate Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim myPaintArgs As PaintEventArgs = New PaintEventArgs(e.Graphics, New Rectangle(New Point(0, 0), Me.Size))
Me.InvokePaint(Me.DG_Tablas, myPaintArgs)
End Sub
Requiere:
* Un botón con manejo del evento Click.
* Un DataGrid, este caso llamado DG_Tablas.
* Un componente PrintDocument llamado aquí printDocument1 con su manejo del evento PrintPage.
Esto lo saqué de una referencia en un proyecto de
The Code Project