1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Private PrintGrid As DataGridViewPrint
Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
PrintDialog1.Document = PrintDocument1
PageSetupDialog1.Document = PrintDocument1
Dim fpr As New frmPrint()
With fpr
.Title = "Print DataGridView"
.ShowDialog()
If .Result > 0 Then
PrintGrid = New DataGridViewPrint(PrintDocument1, DGV, .bBlackWhite)
PrintGrid.PrintTitle = .bTitle
PrintGrid.Title = .Title
PrintGrid.TitleFont = New Font("Arial", 14, FontStyle.Bold)
' Setup Footer
PrintGrid.PrintFooter = False
PrintGrid.Footer = "DataGridView Footer"
PrintGrid.FooterFont = New Font("Arial", 14, FontStyle.Bold)
PrintGrid.FooterAlignment = HorizontalAlignment.Left
' Setup Page margins and Page size
PrintDocument1.DefaultPageSettings.Margins.Left = 25
PrintDocument1.DefaultPageSettings.Margins.Top = 25
If .PageHeight > 0 And fpr.PageWidth > 0 Then
Dim SizeOfPaper As New System.Drawing.Printing.PaperSize()
SizeOfPaper.Height = .PageHeight
SizeOfPaper.Width = .PageWidth
PrintDocument1.DefaultPageSettings.PaperSize = SizeOfPaper
End If
Select Case .Result
Case 1 ' Print
If PrintDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then PrintDocument1.Print()
Case 2 ' Page Setup
PageSetupDialog1.ShowDialog()
Case 3 ' Preview
' Use DataGridViewPrintPreview class to preview, print, and save Printing Document
Dim DGVPrintPreview As DataGridViewPrintPreview = New DataGridViewPrintPreview(PrintGrid, DGV)
DGVPrintPreview.Document = PrintDocument1
DGVPrintPreview.ShowDialog()
End Select
End If
End With
End Sub
Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.HasMorePages = PrintGrid.Print(e.Graphics)
End Sub |
Partager