#vb.net #printing
Вопрос:
Печатание
Когда я использовал цикл для печати таблицы базы данных, и эти данные состоят из двух страниц, я использую e.hasmorepages=true
. но e.hasmorepages это не останавливает. Значит продолжайте. Код приведен ниже:
Dim x As Int32 = e.MarginBounds.Left
Dim y As Int32 = e.MarginBounds.Top
Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
fmt.LineAlignment = StringAlignment.Center
fmt.Alignment = StringAlignment.Center
Dim rec As Rectangle
Dim mrow As Integer = 0
Dim h As Int32 = 0
Dim i As Int32
If newpage Then
'Dim image As Image
'e.Graphics.DrawImage(image, 20, 20, 70, 50)
End If
For i = mrow To tbl.Rows.Count - 1
x = e.MarginBounds.Left
h = 0
x = e.MarginBounds.Left
For j As Integer = 0 To tbl.Columns.Count - 1
rec = New Rectangle(x, y, 60, 30)
e.Graphics.DrawRectangle(Pens.Black, rec)
e.Graphics.DrawString(tbl.Rows(i)(j).ToString, rfont, Brushes.Black, rec, fmt)
x = rec.Width
h = Math.Max(h, rec.Height)
Next
y = h
mrow = 1
If y h > e.MarginBounds.Bottom Then
e.HasMorePages = True
'mrow -= 1
newpage = True
Return
Else
newpage = False
End If
Next`
Я искал во многих блогах, но эта проблема не решена.
Комментарии:
1. Переменная
mrow
должна быть классовой, а не локальной. Сбросьте его, когда вы вызываетеPrintPage
случае.