Bonjour
J'imprime le contenu d'une listView grâce au code suivant

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
35
36
37
38
39
40
 Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
        'Declaration d'une variable "statique" pour pouvoir parcourir le listView en cas des plusieurs pages
        Static pos As Int32 = 0
        Dim HauteurTexte As Single = e.Graphics.MeasureString("X", Me.ListView1.Font).Height 'Recuperation d'hauteur du texte
        Dim LignePerPage As Int32 = CInt(e.MarginBounds.Height / HauteurTexte) 'Calcul de nombre des lignes par page
        Dim XPos, YPos As Single 'Les positions temporaires
        YPos = HauteurTexte
        XPos = 0
        'Imprime la liste
        For cmptLig As Int32 = 0 To ListView1.Items.Count - 1
            If cmptLig > LignePerPage Then
                YPos = 0
                e.HasMorePages = True
                Exit For
            ElseIf pos > ListView1.Items.Count - 1 Then
                'travail termine
                e.HasMorePages = False
                pos = 0
                Exit For
            End If
            For clm As Int32 = 0 To ListView1.Columns.Count - 1
                e.Graphics.DrawString(ListView1.Items(pos).SubItems(clm).Text, ListView1.Font, Brushes.Black, XPos, YPos) ' New Font("Arial", 15, FontStyle.Regular)
                XPos += ListView1.Columns(clm).Width 'la position horisontale
            Next
            YPos += HauteurTexte
            XPos = 0
            pos += 1
        Next
        If e.HasMorePages = False Then pos = 0 'Si il n'y a que une page on met la variable statique a 0
    End Sub
 
    Private Sub Btnprint_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnPrint.Click
        PrintDocument1.DocumentName = "Acteurs sans photo"
        PrintDocument1.DefaultPageSettings.Margins = New Margins(50, 10, 50, 50) 'definir les marges
        PrintDocument1.OriginAtMargins = True 'appliquer les marges définies
        PrintDocument1.DefaultPageSettings.Landscape = False 'mode portret
        PrintPreviewDialog1.Document = PrintDocument1 'Chargement du document dans l'apperçu
        PrintPreviewDialog1.WindowState = FormWindowState.Maximized
        PrintPreviewDialog1.ShowDialog() 'Affichage du dialogue
    End Sub
Tout fonctionne bien, j'ai la page en prévisu ( en plein écran )
Mais voilà je voudrais ajouter une en-tête à cette page
Je n'ai pas trouvé de solution ...
Merci pour votre aide