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 VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
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 VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.