tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。