投稿者 なべ  () 投稿日時 2008/2/25 07:08:00
自己レスです。 
何とか解決しました。 
少し長いですが書き出します。 
lineはこの中に入れずに最初に定義しておきます。 
dim line as integer = 0 
 
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage 
 
        Dim fnt As New Font("MS UI Gothic", 9) 
        Dim LineHeight As Single = fnt.GetHeight(e.Graphics) 
 
        Dim X As Integer = 50 
        Dim Y As Integer = 50 
        Static tl As Integer = logdisp.Items.Count - 1 
        Do Until line = tl 
            logtext = logdisp.Items(line) 
            e.Graphics.DrawString(logtext, fnt, Brushes.Black, X, Y) 
            Y += LineHeight 
            line = line + 1 
            If line <> tl Then 
                If Y + LineHeight > e.MarginBounds.Y + e.MarginBounds.Height Then 
                    e.HasMorePages = True 
                    Exit Do 
                End If 
            Else 
                e.HasMorePages = False 
            End If 
        Loop 
 
        If e.HasMorePages = False Then 
            fnt.Dispose() 
        End If 
        Exit Sub 
    End Sub 
あちらこちらにVB中学校さんのサンプルから引っ張った後がありますがお許しを。