我正在制作程序,其中:在 datagridview 中选择几行后,它会检查是否选择了 1 个或多个。如果是一份,则在一页上打印两份报告(一份报告=半页) 如果多份:每页打印两份报告,根据需要打印多少页。问题是,我的代码打印了 4531456453 页的相同报告(第一行和第二行):/
基本代码示例:
yPos = 0
Do While tmpI < mydatagridview.SelectedRows.Count - 1
For Each selectedrow As DataGridViewRow In mydatagridview.SelectedRows
Dim data as string = mydatagridview.SelectedRows(selectedrow.index).cells(1).value
Dim data2 as string = mydatagridview.SelectedRows(selectedrow.index).cells(12).value
e.graphics.drawstring(data, drawfont, (e.graphics.pagebound.width/2-e.graphics.measurestring(data, drawfont).width/2), 25+yPos)
e.graphics.drawstring(data2, drawfont, (e.graphics.pagebound.width/2-e.graphics.measurestring(data2, drawfont).width/2), 50+yPos)
yPos += e.pagebounds.height/2
tmpI += 1
If yPos > e.pagebound.height/2 Then
h = 0
e.HasMorePages = true
Exit Sub
End If
Next selecedrow
Loop
截至目前,正如我之前所说,它打印了无限数量的页面,这些页面包含来自 SelectedRows 的数据和 data2,索引为 0 和 1。