在vb.net中打印多页

在vb.net中打印多页,vb.net,printing,printdocument,Vb.net,Printing,Printdocument,如何打印多页?在我的表格中,我有带有相应标签的文本框,例如(id、姓名、课程等),但问题是1页不足以显示所有文本框。我必须添加另一个页面来显示剩余的文本框及其标签。我试图将e.hasmorepages设置为true,但第二页中显示的文本框与第一页中的文本框相同,因此无法继续 这是我的密码: Private Sub printSisDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.Prin

如何打印多页?在我的表格中,我有带有相应标签的文本框,例如(id、姓名、课程等),但问题是1页不足以显示所有文本框。我必须添加另一个页面来显示剩余的文本框及其标签。我试图将e.hasmorepages设置为true,但第二页中显示的文本框与第一页中的文本框相同,因此无法继续

这是我的密码:

Private Sub printSisDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printSisDoc.PrintPage

    Dim labelFont As New Font("Arial", 11, FontStyle.Bold)
    Dim textFont As New Font("Arial", 11, FontStyle.Regular)
    Dim headerFont As New Font("Arial", 12, FontStyle.Bold)

    e.Graphics.DrawString(lblGrade.Text, headerFont, Brushes.Black, 650, 660)
    e.Graphics.DrawString(grade11.Text, textFont, Brushes.Black, 660, 690)
    e.Graphics.DrawString(underline.Text, labelFont, Brushes.Black, 643, 692)
    e.Graphics.DrawString(grade12.Text, textFont, Brushes.Black, 660, 715)
    e.Graphics.DrawString(grade13.Text, textFont, Brushes.Black, 660, 740)
    e.Graphics.DrawString(grade14.Text, textFont, Brushes.Black, 660, 765)
    e.Graphics.DrawString(grade15.Text, textFont, Brushes.Black, 660, 790)
    e.Graphics.DrawString(grade16.Text, textFont, Brushes.Black, 660, 815)
    e.Graphics.DrawString(grade17.Text, textFont, Brushes.Black, 660, 840)
    e.Graphics.DrawString(grade18.Text, textFont, Brushes.Black, 660, 865)
    e.Graphics.DrawString(grade19.Text, textFont, Brushes.Black, 660, 890)
    e.Graphics.DrawString(grade20.Text, textFont, Brushes.Black, 0, 1500)

    mPageNumber += 1

    e.HasMorePages = (mPageNumber <= 2)
End Sub
Private Sub-printSisDoc\u PrintPage(ByVal sender作为System.Object,ByVal e作为System.Drawing.Printing.PrintPageEventArgs)处理printSisDoc.PrintPage
暗淡的labelFont作为新字体(“Arial”,11,FontStyle.Bold)
Dim textFont作为新字体(“Arial”,11,FontStyle.Regular)
暗头字体作为新字体(“Arial”,12,FontStyle.Bold)
e、 图形.抽绳(lblGrade.Text,头饰,画笔.黑色,650,660)
e、 图形.抽绳(等级11.Text,textFont,画笔.黑色,660690)
e、 图形.抽绳(下划线.文本,标签字体,画笔.黑色,643692)
e、 图形.抽绳(12级.文本,文本字体,画笔.黑色,660715)
e、 图形.抽绳(等级13.Text,textFont,画笔.黑色,660740)
e、 图形.抽绳(等级14.Text,textFont,画笔.黑色,660765)
e、 图形.抽绳(等级15.Text,textFont,画笔.黑色,660790)
e、 图形.抽绳(16级.文本,文本字体,画笔.黑色,660815)
e、 图形.抽绳(17级.文本,文本字体,画笔.黑色,660840)
e、 图形.抽绳(等级18.Text,textFont,画笔.黑色,660865)
e、 图形.抽绳(19级.文本,文本字体,画笔.黑色,660890)
e、 图形.抽绳(20级.文本,文本字体,画笔.黑色,0,1500)
mPageNumber+=1

e、 HasMorePages=(mPageNumber当您有多个页面时,您需要确保为每个需要打印的页面调用一次单个
PrintPage()
方法。每次调用该方法时,它都需要知道哪个页面是当前页面以及应该写入该页面的内容

e.HasMorePages
变量是如何使
PrintDocument
对象再次调用该方法的。还请记住
printSisDoc\u PrintPage()
方法是类的一部分。您可以在类实例中设置数据,该方法可用于了解当前页面和打印内容

Private Sub printSisDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printSisDoc.PrintPage

    Dim labelFont As New Font("Arial", 11, FontStyle.Bold)
    Dim textFont As New Font("Arial", 11, FontStyle.Regular)
    Dim headerFont As New Font("Arial", 12, FontStyle.Bold)

    Select mPageNumber
     Case 1
        e.Graphics.DrawString(lblGrade.Text, headerFont, Brushes.Black, 650, 660)
        e.Graphics.DrawString(grade11.Text, textFont, Brushes.Black, 660, 690)
        e.Graphics.DrawString(underline.Text, labelFont, Brushes.Black, 643, 692)
        e.Graphics.DrawString(grade12.Text, textFont, Brushes.Black, 660, 715)
        e.Graphics.DrawString(grade13.Text, textFont, Brushes.Black, 660, 740)
        e.Graphics.DrawString(grade14.Text, textFont, Brushes.Black, 660, 765)
        e.Graphics.DrawString(grade15.Text, textFont, Brushes.Black, 660, 790)
        e.Graphics.DrawString(grade16.Text, textFont, Brushes.Black, 660, 815)
        e.Graphics.DrawString(grade17.Text, textFont, Brushes.Black, 660, 840)
        e.Graphics.DrawString(grade18.Text, textFont, Brushes.Black, 660, 865)
        e.Graphics.DrawString(grade19.Text, textFont, Brushes.Black, 660, 890)
        e.HasMorePages = True

     Case 2

        e.Graphics.DrawString(grade20.Text, textFont, Brushes.Black, 0, 400)
        e.HasMorePages = False

    End Select

    mPageNumber += 1

End Sub

当您有多个页面时,需要确保为需要打印的每个页面调用一次单个
PrintPage()
方法。每次调用该方法时,它都需要知道哪个页面是当前页面以及应该写入该页面的内容

e.HasMorePages
变量是如何使
PrintDocument
对象再次调用该方法的。还请记住
printSisDoc\u PrintPage()
方法是类的一部分。您可以在类实例中设置数据,该方法可用于了解当前页面和打印内容

Private Sub printSisDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printSisDoc.PrintPage

    Dim labelFont As New Font("Arial", 11, FontStyle.Bold)
    Dim textFont As New Font("Arial", 11, FontStyle.Regular)
    Dim headerFont As New Font("Arial", 12, FontStyle.Bold)

    Select mPageNumber
     Case 1
        e.Graphics.DrawString(lblGrade.Text, headerFont, Brushes.Black, 650, 660)
        e.Graphics.DrawString(grade11.Text, textFont, Brushes.Black, 660, 690)
        e.Graphics.DrawString(underline.Text, labelFont, Brushes.Black, 643, 692)
        e.Graphics.DrawString(grade12.Text, textFont, Brushes.Black, 660, 715)
        e.Graphics.DrawString(grade13.Text, textFont, Brushes.Black, 660, 740)
        e.Graphics.DrawString(grade14.Text, textFont, Brushes.Black, 660, 765)
        e.Graphics.DrawString(grade15.Text, textFont, Brushes.Black, 660, 790)
        e.Graphics.DrawString(grade16.Text, textFont, Brushes.Black, 660, 815)
        e.Graphics.DrawString(grade17.Text, textFont, Brushes.Black, 660, 840)
        e.Graphics.DrawString(grade18.Text, textFont, Brushes.Black, 660, 865)
        e.Graphics.DrawString(grade19.Text, textFont, Brushes.Black, 660, 890)
        e.HasMorePages = True

     Case 2

        e.Graphics.DrawString(grade20.Text, textFont, Brushes.Black, 0, 400)
        e.HasMorePages = False

    End Select

    mPageNumber += 1

End Sub

嗨,乔尔,谢谢你的回答,但我有一个忙,你能给我看一个使用我的代码的例子吗?谢谢你!我真的很感谢你的帮助:)嗨,乔尔,谢谢你的回答,但我有一个忙,你能给我看一个使用我的代码的例子吗?谢谢你!我真的很感谢你的帮助:)