タイトル : Re^4: Re5: VB.NETの印刷の改ページ処理 投稿日 : 2006/03/15(Wed) 20:35 投稿者 : YAS
? もしかして,引数とか戻り値とかその辺がわからないのですか? PrintDocument1_PrintPageの引数の「e」が肝心で,外部のSubに処理をまかせたければ, この「e」を引数にして呼ばなければいけません。 例えば, 呼ぶ側 : Call PrintMeisai( e , Page ) 呼ばれる側 : Private Sub PrintMeisai( e as System.Drawing.Printing.PrintPageEventArgs, Page As Integer ) 呼ばれた側はこの「e」を使ってGraphicsオブジェクトに描画します。 呼ぶ側から渡された「e」を使わなければe.Graphicsとしても「e」の中はからっぽなので 当然,Null参照のエラーになります。 以下のサンプルはこのまま動作はしませんが,これに肉付けをすればたぶん望む処理になると思います。 Private Sub PrintTitle(ByVal e As System.Drawing.Printing.PrintPageEventArgs) Dim img As Image e.Graphics.DrawImage(img, 40, 560) End Sub Private Sub PrintMeisai(ByVal e As System.Drawing.Printing.PrintPageEventArgs, ByVal Page As Integer) Dim Data As Integer e.Graphics.DrawString(Data.ToString, New Font("HGOCR-B", 13, FontStyle.Regular), Brushes.Black, 40, 660) End Sub Dim Page as Integer = 0 Private Sub PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument.PrintPage PrintTitle(e) PrintMeisai(e, Page) Page += 1 e.HasMorePages = (Page < 100) End Sub |