リストボックスに項目のリストを印刷しようとしています。私は284項目あります。約四分の一が印刷され、残りは印刷されず、最後に最後の入力が途中で終了します。 e.HasMorePagesを利用して次のページに印刷を中断した箇所を追跡することについてオンラインで読んでいますが、現在は何も印刷されておらず、印刷ページ1,2,3,4,5などが記載されています。何も起こらない。私はCtrl + Cを押してプログラムを閉じる必要があります。どのようにして目的のプリントアウトを達成できますか?PrintDocumentとHasMorePagesを使用して複数のページを印刷する
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