在横向模式下打印vb.net

Ron*_*ong 5 vb.net

我已经设法打印我的数据网格视图的内容,但它不适合纵向模式.我想在横向模式下打印它会.

我有我的数据集的代码来填充datagridview.

Private Sub print_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    Dim query As String = "SELECT * FROM TBLusers"
    Dim DA As New SqlDataAdapter(query, CN)
    Dim DS As New DataSet
    CN.Open()

    DA.Fill(DS, "Users")
    CN.Close()
    DataGridView1.DataSource = DS.Tables("Users")
    'DataGridView1.DataMember = "Users"


End Sub
Run Code Online (Sandbox Code Playgroud)

这是我猜的打印功能?我是从教程中得到的.

Private Sub printDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

    Dim dataGridViewImage As New Bitmap(Me.DataGridView1.Width, Me.DataGridView1.Height)
    DataGridView1.DrawToBitmap(dataGridViewImage, New Rectangle(0, 0, Me.DataGridView1.Width, Me.DataGridView1.Height))
    e.Graphics.DrawImage(dataGridViewImage, 0, 0)
End Sub
Run Code Online (Sandbox Code Playgroud)

这是打印预览.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    PrintPreviewDialog2.Document = PrintDocument1
    PrintPreviewDialog2.PrintPreviewControl.Zoom = 1
    PrintPreviewDialog2.ShowDialog()
End Sub
Run Code Online (Sandbox Code Playgroud)

和印刷品......

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    PrintDocument1.Print()
End Sub
Run Code Online (Sandbox Code Playgroud)

我试过
PrintDocument1.PrinterSettings.DefaultPageSettings.Landscape = True

但似乎没有用?

Rob*_* V. 7

您正在设置DefaultPage打印机的设置.尝试为文档本身设置它:

PrintDocument1.DefaultPageSettings.Landscape = True
PrintDocument1.Print()
Run Code Online (Sandbox Code Playgroud)