2012-12-03 103 views
1

這裏是我的代碼:打印預覽爲空

Imports System.Drawing 
Imports System.Drawing.Printing 
Imports System.Data 
Imports System.Data.OleDb 
Public Class Form3 
Dim dgv As New DataGridView() 
Dim print As New PrintDocument() 
Dim preview As New PrintPreviewDialog() 
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim con As New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Users\user\Documents\Inventory\InventoryLogin\InventoryLogin\Supplies.mdb") 
    Try 
     con.Open() 
     Dim sql As String 
     sql = "SELECT * From [product info]" 
     Dim adapter As New OleDbDataAdapter(sql, con) 
     Dim dt As New DataTable("product info") 
     adapter.Fill(dt) 

     preview.PrintPreviewControl.Zoom = 1 
     preview.Document = print 
     preview.Show() 

     AddHandler print.PrintPage, AddressOf print_PrintPage 

    Catch Ex As Exception 
     MessageBox.Show(Ex.Message) 
    End Try 

End Sub 

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

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

    For Row = 0 To RowCount - 2 

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

     For Cell = 0 To ColumnCount - 1 

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

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

      CellLeftPos += CellWidth 
     Next 

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

End Sub 
End Class 

我試圖預覽和打印在vb.net 用戶需要點擊「打印預覽」在我的datagridview的項目按鈕在打印文檔之前查看文檔,但是當我點擊該按鈕時,它只顯示空白頁面。我如何使datagridview中的記錄出現在我的預覽頁面中?

回答

1

我刪除了Dim dgv作爲新的DataGridView並替換爲當前DataGridView的名稱。