【发布时间】:2017-04-13 20:47:12
【问题描述】:
我正在尝试打印列表框中的项目列表。我有 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
【问题讨论】:
标签: vb.net winforms printdocument