Printing using PrintPreview Print Button
I am getting Exception if i try to use the Print Built-in Button within PrintPreviewDialog.
In my sample, a can have a multi-page preview but i can't print it !
There must be a stupid mistake (my mistake, of course).
There must be someone that can help with this. I have used F8 to watch code execution and when
e.Graphics.DrawString("This is number " + Format(N,"###"), _P_Font, Brushes.Black, 10, Yposition + 5)
is fired, after i click the built-in Print Button,TestMultiPagePreviewPrint_EndPrint is also fired and ...
... and nothing ! There must be something lefting, maybe ! I don't know !
Thank's in advance
Used code to improve this:
Imports
SystemImports System.IO
Imports
System.DrawingImports
System.Drawing.PrintingImports
System.ComponentModelPublic
Inherits System.Windows.Forms.Form
PrivateWithEvents TestMultiPagePreviewPrintAs PrintDocument
Private _currentPageAsInteger = 0
Private _P_FontAs Font
Private _P_BrushAs Brush = Brushes.Black
Private _P_ThicknessAsNew Pen(Brushes.Black, 0.25F)
Private FirstPoint, LastPointAsInteger
PrivateSub TestMultiPagePreviewPrint_BeginPrint(ByVal senderAsObject,ByVal eAs System.Drawing.Printing.PrintEventArgs)Handles TestMultiPagePreviewPrint.BeginPrint
_P_Font =New Font("Arial", 8, FontStyle.Regular, GraphicsUnit.Point)
EndSub
PrivateSub TestMultiPagePreviewPrint_EndPrint(ByVal senderAsObject,ByVal eAs System.Drawing.Printing.PrintEventArgs)Handles TestMultiPagePreviewPrint.EndPrint
_P_Brush.Dispose()
_P_Font.Dispose()
_P_Thickness.Dispose()
EndSub
PrivateSub Button1_Click(ByVal senderAs System.Object,ByVal eAs System.EventArgs)Handles Button1.Click
Try
Dim previewDialogAsNew PrintPreviewDialogTestMultiPagePreviewPrint =
New PrintDocumentTestMultiPagePreviewPrint.DocumentName =
"Testing Multi-page printing with PrintPreview"previewDialog.PrintPreviewControl.Zoom = 1.0
previewDialog.WindowState = FormWindowState.Maximized
previewDialog.ShowInTaskbar =
True'\\to test multi-pageFirstPoint = 1
LastPoint = 200
previewDialog.Document = TestMultiPagePreviewPrint
previewDialog.ShowDialog()
Catch exAs ExceptionMsgBox(ex.Message & vbCrLf & ex.StackTrace)
EndTryEndSub
PrivateSub TestMultiPagePreviewPrint_PrintPage(ByVal senderAsObject,ByVal eAs System.Drawing.Printing.PrintPageEventArgs)Handles TestMultiPagePreviewPrint.PrintPage
Dim NAsInteger
Dim YpositionAsIntegere.Graphics.PageUnit = GraphicsUnit.Millimeter
Yposition = 0
If FirstPoint > LastPointThene.HasMorePages =
FalseExitSubEndIfFor N = FirstPointTo LastPointYposition += 5
e.Graphics.DrawString(
"This is number " + Format(N,"###"), _P_Font, Brushes.Black, 10, Yposition + 5)If Yposition > 260Thene.HasMorePages =
TrueFirstPoint = N + 1
ExitSubElsee.HasMorePages =
FalseEndIfNexte.HasMorePages =
FalseEndSubEnd
Class

