Impression d'une listview en vb.net

pierre42 Messages postés 17 Statut Membre -  
 said369 -
Bonjours a tous

voila j'ai un probleme j'utilise VB.net 2005 et je n'arrive pas à imprimer le contenu d'une listview je ne sais pas comment faire

si quelqu'un aurai une solution a mon souci je vous remci

amicalement,

1 réponse

  1. said369
     
    salut c'est said
    Dans la classe de la forme ou se trouve ta listviewqu'on suppose qu'elle se nomme listview1 tu ajoute le code suivant aprés "public class form1":
    Dim memoryImage As Bitmap
    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
    Private Sub CaptureScreen()
    Dim mygraphics As Graphics = Me.listview1.CreateGraphics()
    Dim s As Size = New Size(353, 274)
    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
    puis dans l'évenement PrintPage du controle printdocument1 on ajoute:
    Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    e.Graphics.DrawImage(memoryImage, 29, 40, 450, 350)
    End Sub
    enfin dans la sub du boutton(imprimer) qui déclenche l'évenement clic on fait:
    Private Sub imprimer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    CaptureScreen()
    PrintDocument1.Print()
    End Sub
    2