Печать нескольких страниц с использованием PrintDocument и HasMorePages

Я пытаюсь распечатать список элементов в списке. У меня 284 предмета. Около четверти из них печатаются, а остальные не печатаются, а внизу последняя запись находится на полпути. Я читал в Интернете о том, как отслеживать, где вы остановились, и печатать на следующей странице, используя e.HasMorePages, но сейчас ничего не печатается, а просто говорится, что его страница печати 1,2,3,4,5 .... и т. Д. и ничего не происходит Я должен Ctrl + C и закрыть программу. Как я могу добиться желаемой распечатки?

Private Sub Print_Click(sender As Object, e As EventArgs) Handles Print.Click
  Dim PrintDialog1 As New PrintDialog
  Dim result As DialogResult = PrintDialog1.ShowDialog()
  If result = DialogResult.OK Then PrintDocument1.Print()

  ' PrintPreviewDialog1.Document = PrintDocument1
  ' PrintPreviewDialog1.ShowDialog()
End Sub

Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage
  '  e.HasMorePages = True
  Dim itemCount As Integer
  Dim startX As Integer = 10
  Dim startY As Integer = 10
  Dim n As Integer
  For x As Integer = 0 To SoftwareLBox.Items.Count - 1
    e.Graphics.DrawString(SoftwareLBox.Items(x).ToString, SoftwareLBox.Font, Brushes.Black, startX, startY)
    startY += SoftwareLBox.ItemHeight
    If n = 150 Then
      e.HasMorePages = True
      n = 0
      startY = 10
    End If
    startY += e.PageBounds.Height
    n += 1
  Next
End Sub

Ответы на вопрос(1)

Ваш ответ на вопрос