For complete code refer Print DataGridView in Windows Forms (WinForms) Application using C# and VB.Net
1. Add PrintDocument and PrintPreviewDialog
2. Then for the PrintDocument add the event
3. Finally add a Button and then use the following code
Private Sub btnPrint_Click(sender As Object, e As EventArgs)
printPreviewDialog1.Document = printDocument1
printPreviewDialog1.PrintPreviewControl.Zoom = 1
printPreviewDialog1.ShowDialog()
End Sub
Private Sub PrintPage(sender As Object, e As System.Drawing.Printing.PrintPageEventArgs)
Dim bm As New Bitmap(Me.dataGridView1.Width, Me.dataGridView1.Height)
dataGridView1.DrawToBitmap(bm, New Rectangle(0, 0, Me.dataGridView1.Width, Me.dataGridView1.Height))
e.Graphics.DrawImage(bm, 0, 0)
End Sub