문제

 Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click
    preview.PrintPreviewControl.Zoom = 1
    preview.Document = print
    print.PrinterSettings.DefaultPageSettings.Landscape = True
    preview.Show()

    AddHandler print.PrintPage, AddressOf print_PrintPage

End Sub

Protected Sub print_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
    Dim ColumnCount As Integer = DataGridView1.ColumnCount
    Dim RowCount As Integer = DataGridView1.RowCount

    Dim CellTopPos As Integer = print.PrinterSettings.DefaultPageSettings.Margins.Top

    For Row = 0 To RowCount - 1

        Dim CellLeftPos As Integer = print.PrinterSettings.DefaultPageSettings.Margins.Left

        For Cell = 0 To ColumnCount - 1

            Dim CellValue As String = DataGridView1.Rows(Row).Cells(Cell).Value.ToString()
            Dim CellWidth = DataGridView1.Rows(Row).Cells(Cell).Size.Width + 50
            Dim CellHeight = DataGridView1.Rows(Row).Cells(Cell).Size.Height

            Dim Brush As New SolidBrush(Color.Black)
            e.Graphics.DrawString(CellValue, New Font("Century Gothic", 10), Brush, CellLeftPos, CellTopPos)
            e.Graphics.DrawRectangle(Pens.Black, CellLeftPos, CellTopPos, CellWidth, CellHeight)

            CellLeftPos += CellWidth
        Next

        CellTopPos += DataGridView1.Rows(Row).Cells(0).Size.Height
    Next

End Sub

This is my code for previewing and printing the contents of my datagridview. I tried using the DefaultPageSettings code but it doesn't work. Im also trying to print it in centered format

도움이 되었습니까?

해결책

Try setting the DefaultPageSettings property of the PrintDocument, not PrinterSettings:

'PrintDocument1.PrinterSettings.DefaultPageSettings.Landscape = True
PrintDocument1.DefaultPageSettings.Landscape = True

다른 팁

Can be used like this CODE

    Dim preview As PrintPreviewDialog
    Dim PageSetup As PageSetupDialog
    PageSetup = New PageSetupDialog
    preview = New PrintPreviewDialog
    PageSetup.PageSettings = PrintDocument1.DefaultPageSettings
    PageSetup.ShowDialog()
    preview.PrintPreviewControl.Zoom = 1
    preview.Document = PrintDocument1

    preview.ShowDialog()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top