Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    mai 2006
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2006
    Messages : 793
    Points : 469
    Points
    469

    Par défaut Utiliser un PrintPreviewDialog dans une classe

    Bonjour,

    Dans le but de gérer facilement l'impression d'une facture dans un logiciel de facturation, j'ai décidé de créer une classe pour cela mais je ne parviens pas à afficher l'aperçu dans la boîte prévue à cet effet.

    J'ai effectivement à chaque fois une exception de type "Argument invalide" qui est levée au moment de l'affichage.

    Voici le code de ma classe :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Imports System.Drawing
    Imports System.Drawing.Printing
    Public Class InvoicePrintingJob
     
        Private p_PreviewDialog As New System.Windows.Forms.PrintPreviewDialog
        Private WithEvents p_InvoiceDoc As New PrintDocument
     
        Public Sub New()
        End Sub
     
        Public Sub Preview()
            p_PreviewDialog.Document = p_InvoiceDoc
            p_PreviewDialog.UseAntiAlias = True
            p_PreviewDialog.ShowDialog()
        End Sub
     
        Private Sub InvoiceDoc_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles p_InvoiceDoc.PrintPage
            e.Graphics.DrawString("Test", New Font("Verdana", 10), Brushes.AliceBlue, 200, 200)
        End Sub
    End Class
    Et l'objet utilisé dans l'application cliente :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub AperçuToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AperçuToolStripMenuItem.Click
            Try
                Dim PrintJob As New DocumentPrinting.InvoicePrintingJob()
                PrintJob.Preview()
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Critical)
            End Try
        End Sub
    End Class
    Je ne comprends pas pourquoi se présente cette erreur. De plus, j'ai fait l'essai avec une boîte de dialogue PrintDialog et là pas d'erreur...

    Une idée ?

    Merci d'avance,

    webrider
    Pensez au tag

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    mai 2006
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Belgique

    Informations forums :
    Inscription : mai 2006
    Messages : 793
    Points : 469
    Points
    469

    Par défaut

    Voilà j'ai trouvé l'erreur et celle-ci ne venait pas de la fonction utilisée ni d'un argument invalide mais bien d'un problème de pilote d'imprimante .

    Ce qui m'a induit en erreur c'est l'exception levée de type argument invalide et cette erreur était levée dans System.Windows.Forms.Form.dll. .

    Bonne journée !

    webrider
    Pensez au tag

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •