IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] Print Preview.....


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Points : 30
    Points
    30
    Par défaut [VB.NET] Print Preview.....
    [VB.NET] Microsoft Visual Basic 2005

    Bonjour... Voili mon pb. J'ai trouvé sur le net un code qui permet d'imprimer ma form en passant par un preview... SUPER CONTENT

    Il marche tres bien, mais qu'une seule fois... apres il me donne une erreur????



    Code : 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
    27
    28
    29
    30
    31
    32
    33
    34
     
        Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _
             hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _
             Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _
             hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
             ByVal dwRop As System.Int32) As Long
        Dim memoryImage As Bitmap
     
        Private Sub CaptureScreen()
            Dim mygraphics As Graphics = Me.CreateGraphics()
            Dim s As Size = Me.Size
            memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
            Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
            Dim dc1 As IntPtr = mygraphics.GetHdc
            Dim dc2 As IntPtr = memoryGraphics.GetHdc
            BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, _
                Me.ClientRectangle.Height, dc1, 0, 0, 13369376)
            mygraphics.ReleaseHdc(dc1)
            memoryGraphics.ReleaseHdc(dc2)
        End Sub
     
        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, _
           ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
            e.Graphics.DrawImage(memoryImage, 0, 0)
        End Sub
     
        Private Sub PrintButton_Click(ByVal sender As System.Object, ByVal e As _
           System.EventArgs) Handles PrintButton.Click
     
            CaptureScreen()
            PrintPreviewDialog1.Document = PrintDocument1
            PrintPreviewDialog1.Show()
     
        End Sub
    Voila....je ne comprend pas pourquoi quand j'appuis sur le bouton une fois cela marche, j'imprime, et si je rappuis ....
    VB m'insulte

    Sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PrintPreviewDialog1.Show()
    ObjectDisposedExecption was unhandled
    "Can not access a disposed object.
    Object name: 'PrintPreviewDialog'."


    Si qq a une idee... Merci

  2. #2
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Salut

    Apparement, tu declare et tu initialise ton printpreview, tu l'utilise une premiere fois, tu le detruit et tu essaie de le reutiliser une seconde fois bien qu'il ai ete detruit...

    Tu as peut etre referme la form ou se trouve le composant PrintPreviewDialog1?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Points : 30
    Points
    30
    Par défaut effectivement!!
    Oui en effet je l'ai refermé.....

    Je clique sur le bouton, apparition du preview, j'imprime, je ferme le prewiew, et la si je veux reouvrir le preview ....Bug...

    et effectivement si je ne ferme pas mon preview... je peux reimprimer...

    Y a t'il un moyen de le recrée, ou bien de le cacher quand on lui demande de le fermer????

    Dur dur le vb

  4. #4
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Alors:

    - Tu as declare le preview a la main ou tu as rajoute un composant a la form ?
    Theoriquement en fesant PrintPreviewDialog1 = New PrintPreviewDialog avant de reouvrir ton preview, ca devrait marcher

    - As-tu rajoute un code particulier pour Fermer la preview? si oui montre le voir

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2004
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 36
    Points : 30
    Points
    30
    Par défaut Aleluyaaa
    Yesssss ca marche.... merci bcp bcp!!!

    Ben en fait dans la form j'avais inseré un composant PrintPreviewDialog!!
    et un composant PrintDocument
    Puis j'ai mis le code deja diffusé avant (trouvé sur le net.... je ne suis pas un genie....enfin pas encore )


    Et effectivement maintenant il le recrée a chaque fois... donc plus de plantage !!

    Sinon je n'avais pas fait de code particulier pour la fermeture!!


    Voila..... une apres midi de prise de tete plus tard.... CA MARCHE


    Encore merci

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

Discussions similaires

  1. ASP.NET MVC Preview 4
    Par hollywood dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 22/07/2008, 11h57
  2. Access 20003 RunTime Print Preview
    Par gridin dans le forum Runtime
    Réponses: 4
    Dernier message: 10/07/2008, 11h26
  3. ASP.NET MVC Preview 2
    Par cereal59 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 04/04/2008, 16h41
  4. disparition après print preview
    Par courantjet dans le forum MFC
    Réponses: 1
    Dernier message: 25/09/2006, 17h10
  5. [Composant] Print/Print preview
    Par Rodrigue dans le forum C++Builder
    Réponses: 3
    Dernier message: 23/12/2004, 09h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo