继续打印一页

时间:2017-08-24 21:57:28

标签: .net vb.net visual-studio

我想打印列表框中的所有项目,如果还有更多项目,我希望它们能够在下一页继续。为此,每次撰写项目时pageRecordIndex增加1,如果pageRecordIndex不等于列表框中的项目数,则e.HasMorePages设置为True但是,当第一页填满后,其他项目就不会在下一页上打印。

Public Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    PrintPreviewDialog1.ShowDialog()
End Sub

Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
    Dim pageRecordIndex = 0
    Dim index As Integer
    Dim mem As String
    Dim yOffset As Integer = 10

    If pageRecordIndex < ListBox1.Items.Count Then
        For index = 0 To ListBox1.Items.Count - 1
            mem = ListBox1.Items(index)
            e.Graphics.DrawString(mem,
                              Me.Font,
                              Brushes.Black,
                              10,
                              yOffset)

            pageRecordIndex = pageRecordIndex + 1
            yOffset += 20
        Next
        If pageRecordIndex = ListBox1.Items.Count Then
            e.HasMorePages = False
            Exit Sub
        Else
            e.HasMorePages = True
        End If
    End If

End Sub

我尝试在第一个e.hasmorepages声明之外设置If,但仍然没有运气。还有一个Do While循环也没有用。是{I}跟踪我的记录的方式是pageRecordIndex不对吗?这是什么问题?

在标记为重复之前,请留下评论,说明如何在我的网站上实施其他解决方案,因为我已经看过类似的帖子,解决方案对我不起作用。

1 个答案:

答案 0 :(得分:0)

试试这样:

对于index = pageRecordIndex To ListBox1.Items.Count - 1