2009-05-29 62 views
1
Using printPreview As New PrintPreviewDialog() 
     ' Dim x As New Printing.PrintDocument() 
     ' AddHandler x.PrintPage, AddressOf PrintData 
     printPreview.Document = Me.CurrentDocument 
     If ShowPrinterSetup Then 
      Dim x As New PrintDialog() 
      x.Document = CurrentDocument 
      x.ShowDialog(Anchor) 
     End If 
     whichPage = 0 
     Return printPreview.ShowDialog(Anchor) 
End Using 

到目前为止,无论我在printpreview中点击了什么,showdialog都会返回cancel? 如何判断用户是否打印?我想清除物品的打印队列,如果他们确实打印到打印机,或者询问他们是否应该清除它,但只有在他们确实打印了某些东西时才打印出来。如何判断是否有人从printPreview打印?

回答

0

你可以从CurrentDocument EndPrint事件的打印作业的结果

Private WithEvents CurrentDocument As New PrintDocument 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    Using printPreview As New PrintPreviewDialog() 
     printPreview.Document = Me.CurrentDocument 
     printPreview.ShowDialog() 
    End Using 
End Sub 

Private Sub document_EndPrint(ByVal sender As Object, ByVal e As PrintEventArgs) Handles CurrentDocument.EndPrint 
    If e.PrintAction = PrintAction.PrintToPrinter Then 
     MsgBox("Document Printed to Printer") 
    End If 
End Sub