2009-05-29 3 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는 취소를 반환합니까? 사용자가 인쇄를했는지 어떻게 알 수 있습니까? 나는 그들이 실제로 프린터로 인쇄하거나 내가 그것을 지워야 하는지를 물어 본다면 실제로 인쇄물을 인쇄 한 경우에만 항목의 인쇄 대기열을 지우고 싶습니다.누군가 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