Ano, je to možné. Musíte si odchytit událost BeginPrint, která se vyvolá na PrintDocumentu, který je dosazen do PrintPreviewDialogu. Argumenty této události jsou typu PrintEventArgs, který má vlastnost Cancel, jejíž nastavení na True tisk zakáže. Následovně:
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim document = New Printing.PrintDocument()
AddHandler document.BeginPrint,
Sub(sender2 As Object, e2 As Printing.PrintEventArgs)
e2.Cancel = True
End Sub
PrintPreviewDialog1.Document = document
PrintPreviewDialog1.ShowDialog()
End Sub
Událost se vyvolá jednou hned při zobrazení ShowDialog() a pak pokaždé, pokud uživatel klikne na ikonu tiskárny v PrintPreviewDialogu. Já tady handler na událost navěšuji pokaždé při stisku tlačítka. Vy byste to měl mít tak, že jí navěsíte pokaždé, když se vytvoří a dosadí nový PrintDocument.
|