Neaj 0 Newbie Poster

The panel has controls like labels, text boxes, list view and pictures boxes. which is probably more than four pages. I have tried all my best still i cant print all the pages. i surf online for help and found this code. the code works perfect by printing all the pages but leaves the list view and picture boxes. how do i fix this please

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.Panel1.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.Panel1.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 PointF(ctrl.Left, ctrl.Top - startPosition))
        End If
    End If
Next

page += 1
If page > maxPages Then
    e.HasMorePages = False
    page = 1
    maxPages = 0
Else
    e.HasMorePages = True
End If
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.