[VB.NET][VS2005] Classe PrintDocument - annuler l'impression
Bonjour,
Je suis en train de finaliser le développement d'une classe héritée de PrintDocument.
On l'appelle de cette façon:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
Private Sub btnSign35x11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSign35x11.Click
Dim prnDialog85x11 As New PrintDialog
Dim affiche As New Signs85x11
prnDialog85x11.Document = affiche
prnDialog85x11.AllowSomePages = True
Try
If prnDialog85x11.ShowDialog() = Windows.Forms.DialogResult.OK Then
affiche.Print()
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
If Not affiche Is Nothing Then
affiche.Dispose()
End If
End Try
End Sub |
Dans le constructeur et la fonction InitialiserGraphiques():
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
Public Sub New()
MyBase.New() ' Constructeur de la classe de base (PrintDocument)
Me.InitialiserGraphiques()
End Sub
' Initialisation des objets graphiques et des options
Private Sub InitialiserGraphiques()
Me.DefaultPageSettings.Landscape = False
Me.DocumentName = "Le nom du logiciel - Document"
...
Try
Me.totalPages = Utility_SQL.GetTotalCount("usager", "mot de passe", "le nom de la table") ' Fonction développée à part qui gère toute la connexion à la BD SQL Server 2005
If Me.totalPages = 0 Then
' C'est ici que je dois entrer du code pour annuler complètement
' l'exécution du code, si c'est possible...
End If
Catch ex As Exception
MessageBox.Show(ex.Message)
Finally
' Si nécessaire, du code à ajouter pour fermer ce qui est ouvert
End Try
' Lire les données de la table ToPrint et compter le nombre de rangées
End Sub |
Et j'ai toujours ceci:
Code:
1 2 3 4 5 6 7
|
If (Me.currentPage < Me.totalPages) Then
e.HasMorePages = True
Me.currentPage = Me.currentPage + 1
Else
e.HasMorePages = False
End If |
Dans le constructeur, je mets comme condition que Me.totalPages ne doit pas être égal à zéro --> le cas échéant, pour gagner du temps CPU je désire annuler la gestion de l'événement PrintPage envoyé par la boîte de dialogue, afin d'éviter que le code ne soit lu pour rien, et peut-être envoyer un message «Il n'y aucune fiche à imprimer» à l'usager.
Y a-t-il possibilité de le faire? J'espère avoir été suffisamment claire. D'avance, merci beaucoup.