2012-12-03 104 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的名称。