Le righe
ContRighe = 0
RighePerPagina = 0
Pagina = 1
NumIsc = 0
TotaleCa = 0
RigaDaStampare = 1
devi farle eseguire ogni volta che la stampa riparte.
Nel momento in cui fai il preview, queste righe vengono eseguite (dato che premi il pulsante ButtonPreviev) ma nel momento in cui hai il preview a video e l'utente preme “stampa”, queste righe non vengono eseguite di nuovo, hai quindi il contatore delle pagine alla fine, ed è quindi normale che ti stampi solo l'ultima pagina
Togli queste righe sia da ButtonPreviev_Click, sia da Buttonstampa_Click e mettile dentro l'evento che viene chiamato ogni volta che la stampa riparte, cioè:
Private Sub PrintDocument1_BeginPrint(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.BeginPrint
ContRighe = 0
RighePerPagina = 0
Pagina = 1
NumIsc = 0
TotaleCa = 0
RigaDaStampare = 1
End Sub
in questo modo, ogni volta che la stampa riparte, reinizializza tutte le routine che ti servono
Inoltre, dentro all'evento BeginPrint, hai anche la possibilità eventualmente di chiedere all'utente su quale stampante vuole stampare, perchè ho visto che glielo chiedi quando premi il pulsante “stampa”, ma non quando preme il pulsante “preview”, per cui potrebbe poi stampare su una stampante non voluta.
Sergio