Si, esiste proprio un oggetto che fa questo, mi sembra si chiama PreviewControl o qualcosa del genere
Ma io lascerei il preview standard e quando il cliente preme "stampa" intercetto la chiamata, gli faccio uscire la schermata della scelta della stampante e da lì (mi sembra) può scegliere quale range di pagine stampare.
Praticamente, nell'evento BeginPrint della tua stampa, metti questo codice (pDoc è l'oggetto PrintDocument e pDlg è un oggetto PrintDialog):
codice:
If Not pDoc.PrintController.IsPreview Then
pDlg.Document = pDoc
pDlg.PrinterSettings = pDoc.PrinterSettings
pDlg.AllowSomePages = True
If pDlg.ShowDialog = Windows.Forms.DialogResult.OK Then
pDoc.PrinterSettings = pDlg.PrinterSettings
Else
e.Cancel = True
End If
End If
Sergio