Я хочу решить эту проблему

#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 должна быть классовой, а не локальной. Сбросьте его, когда вы вызываете Print процедуру, а не в PrintPage случае.