【问题标题】:keeps printing one page [duplicate]继续打印一页[重复]
【发布时间】:2017-08-24 21:57:27
【问题描述】:

我想打印列表框中的所有项目,如果还有更多项目,我希望它们在下一页继续。为此,每次写入一个项目时,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

我尝试在第一个If 语句之外设置e.hasmorepages,但仍然没有运气。也做了一个Do While 循环,但没有奏效。我通过pageRecordIndex 跟踪记录的方式不对吗?这里有什么问题?

在标记为重复之前,请发表评论,说明我如何在我的上实施其他解决方案,因为我看过类似的帖子,但这些解决方案对我不起作用。

【问题讨论】:

  • 这与你的last question 有什么不同,last question 本身就是一个骗子?
  • 您将其标记为重复,但其他帖子的解决方案不起作用@Plutonix
  • 这篇文章和上一篇文章有​​同样的问题——你的 For/Loop 从每页的零开始。原始帖子中链接的两个帖子都充分涵盖了该问题。它与e.HasMorePages 无关,它与索引有关。请阅读How to Ask 并采取tour
  • 所以我尝试设置 index = pageRecordIndex 但它正在做同样的事情。可以不举个例子吗
  • 你能不研究已经制作好的例子并专注于循环索引器吗?您上面的代码是对其中一个骗子的苍白且有缺陷的翻译。答案 both 依赖于声明的变量 outside print 方法,该方法跟踪最后一页离开的位置.

标签: .net vb.net visual-studio


【解决方案1】:

试试这样:

For index = pageRecordIndex To ListBox1.Items.Count - 1

【讨论】:

  • 我试过了,但是没有用。还尝试删除 If 语句,最后输入 e.hasmorepages = pageRecordIndex &gt; Listbox1.items.count 但没有运气
  • 现在我明白了!你必须算在外面。查看上面的第一个链接。
  • @nikolas 是的,我多次查看第一个链接,但不明白。请解释一下?
  • 您的事件只能打印一页,因为您在方法中初始化了 pageRecordIndex,它总是从新开始。尝试使用帖子中提供的所有代码,然后你应该得到一个有效的解决方案。
猜你喜欢
  • 1970-01-01
  • 2017-02-05
  • 2019-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
相关资源
最近更新 更多