Impression d'une listview en vb.net

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. 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