为什么在 for 循环中更改文本时 printdocument 打印同一页?
Why Does printdocument print the same page when the text is changed in for loop?
我正在尝试从 datagridview 打印每一行,其中一个单元格值为 1,但现在所有这些都是 1(我这么说是因为我的循环中有一个 if)。我要删除大部分打印代码,因为它会打印很多字符串,这是我的 printdocument.printpage.
For i As Integer = 0 To dgv.Rows.Count - 1
If dgv.Rows(i).Cells(18).Value = 1 Then
S_Cegnev = dgv.Rows(i).Cells(3).Value
S_FullCim = dgv.Rows(i).Cells(4).Value & " " & dgv.Rows(i).Cells(5).Value & ", " & dgv.Rows(i).Cells(6).Value
S_Adoszam = dgv.Rows(i).Cells(10).Value
S_MaganJogi = dgv.Rows(i).Cells(13).Value
S_DatumElsodleges = dgv.Rows(i).Cells(16).Value
S_Osszeg = dgv.Rows(i).Cells(14).Value
然后它使用 for 循环中设置的变量绘制字符串,并将 1 的数量与打印页数进行比较并设置 e.hasmorepages。它确实打印了正确数量的页面,但所有页面都包含第一行的数据......而且最后一页似乎有 2 行数据打印在彼此之上。谢谢!
您将循环计数器从 0 开始,这样每一页都会发生什么。如果您希望后续页面打印不同的行,那么您需要从不同的索引开始。您需要记住您在一页上完成的索引,以便您可以从下一页的下一个索引开始。这意味着使用在该事件处理程序的调用之间存在的变量,即成员变量。您可以在打印 运行 之前将其设置为 0,然后在每页的末尾将其设置为 0。
我正在尝试从 datagridview 打印每一行,其中一个单元格值为 1,但现在所有这些都是 1(我这么说是因为我的循环中有一个 if)。我要删除大部分打印代码,因为它会打印很多字符串,这是我的 printdocument.printpage.
For i As Integer = 0 To dgv.Rows.Count - 1
If dgv.Rows(i).Cells(18).Value = 1 Then
S_Cegnev = dgv.Rows(i).Cells(3).Value
S_FullCim = dgv.Rows(i).Cells(4).Value & " " & dgv.Rows(i).Cells(5).Value & ", " & dgv.Rows(i).Cells(6).Value
S_Adoszam = dgv.Rows(i).Cells(10).Value
S_MaganJogi = dgv.Rows(i).Cells(13).Value
S_DatumElsodleges = dgv.Rows(i).Cells(16).Value
S_Osszeg = dgv.Rows(i).Cells(14).Value
然后它使用 for 循环中设置的变量绘制字符串,并将 1 的数量与打印页数进行比较并设置 e.hasmorepages。它确实打印了正确数量的页面,但所有页面都包含第一行的数据......而且最后一页似乎有 2 行数据打印在彼此之上。谢谢!
您将循环计数器从 0 开始,这样每一页都会发生什么。如果您希望后续页面打印不同的行,那么您需要从不同的索引开始。您需要记住您在一页上完成的索引,以便您可以从下一页的下一个索引开始。这意味着使用在该事件处理程序的调用之间存在的变量,即成员变量。您可以在打印 运行 之前将其设置为 0,然后在每页的末尾将其设置为 0。