[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