Bonjour à tous ami(e)s dévelopeur

Je recherche en vain une solution pour imprimer mon panel avec la prise en charges des rectangleshape, j'ai beau chercher là je ne n'ai plus de piste
J'arrive pour le moment à imprimer mon panel avec du texte et des images avec mon bout de code ci-dessous.
Sur la form j'utilise un "PrintForm1" et un "PrintDocument1".

Quand je clic sur mon bouton impression :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Private Sub BarButtonItem4_ItemClick(ByVal sender As System.Object, ByVal e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem4.ItemClick
 
        'Imprimer le récap
            Panel8.VerticalScroll.Value = 0
            PrintDocument1.Print()
 
    End Sub

Code pour la prise en charge de l'impression du panel avec texte et image

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
41
42
43
44
45
46
47
48
49
50
51
52
53
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
 
        Static page As Integer = 1
        Dim startPosition As Integer = (page - 1) * PrintDocument1.DefaultPageSettings.Bounds.Height
        Static maxPages As Integer = 0
 
        If page = 1 Then
            For Each ctrl As Control In Me.Panel8.Controls
                If TypeOf ctrl Is TextBox Or TypeOf ctrl Is Label Or TypeOf ctrl Is PictureBox Then
                    ctrl.Tag = Int((ctrl.Top + ctrl.Height) / PrintDocument1.DefaultPageSettings.Bounds.Height) + 1
                    If CInt(ctrl.Tag) > maxPages Then maxPages = CInt(ctrl.Tag)
                End If
            Next
        End If
 
        For Each ctrl As Control In Me.Panel8.Controls
            If CInt(ctrl.Tag) = page Then
                If TypeOf ctrl Is TextBox Or TypeOf ctrl Is Label Then
                    Dim sf As New System.Drawing.StringFormat
                    If TypeOf ctrl Is TextBox Then
                        If DirectCast(ctrl, TextBox).TextAlign = HorizontalAlignment.Right Then
                            sf.Alignment = StringAlignment.Far
                        Else
                            sf.Alignment = StringAlignment.Near
                        End If
                    ElseIf TypeOf ctrl Is Label Then
                        If DirectCast(ctrl, Label).TextAlign = ContentAlignment.TopLeft Then
                            sf.Alignment = StringAlignment.Near
                        ElseIf DirectCast(ctrl, Label).TextAlign = ContentAlignment.TopRight Then
                            sf.Alignment = StringAlignment.Far
                        End If
                    End If
                    sf.FormatFlags = StringFormatFlags.NoClip
                    e.Graphics.DrawString(ctrl.Text, ctrl.Font, New SolidBrush(ctrl.ForeColor), New RectangleF(ctrl.Left, ctrl.Top - startPosition, ctrl.Width + 50, ctrl.Height), sf)
                ElseIf TypeOf ctrl Is PictureBox Then
                    e.Graphics.DrawImage(DirectCast(ctrl, PictureBox).Image, New RectangleF(ctrl.Left, ctrl.Top - startPosition, ctrl.Width, ctrl.Height))
 
                ElseIf TypeOf ctrl Is Label Then
                    e.Graphics.DrawString(Me.Text, Me.Font, Brushes.DarkBlue, New RectangleF(ctrl.Left, ctrl.Top - startPosition, ctrl.Width, ctrl.Height))
                End If
            End If
        Next
 
        page += 1
        If page > maxPages Then
            e.HasMorePages = False
            page = 1
            maxPages = 0
        Else
            e.HasMorePages = True
        End If
 
    End Sub

J'aimerai dans ce dernier bout de code pouvoir imprimer également des RectangleShape est-ce que cela en est possible ??

Merci à toute les personnes qui pourrai m'aider.
Vous remerciant par avance,