|
■No65660 (のぶ さん) に返信
> == イメージ ==
> calss HogePrintDocument : PrintDocument
> {
> //ここに描画処理(に相当するメソッド?)が実装される?
> }
> ==============
> このようなイメージになるのでしょうか?
> 私の知識が乏しいせいですが、イマイチ理解できないのでよろしければもう少しお教え下さい。
ちょっと前のスレの私のレスより。そしてちょっと手を加えてあります。
VBですが同じような感じで出来ると思います。
Font, Brush, PenなどがPrivateで定義されているためセクション毎に処理を分けるのが
楽だと思います。他に現在の印字位置を保持する変数をもうけるとよいかもしれません。
同じ書き方をFormの中に埋め込むという方法もできなくはないですが、印刷処理が
1クラスにまとまっているので分かりやすくなると思います。
Public Class MyReport
Inherits PrintDocument
Public データを保存するための変数
Private fnt1 as font
Private fnt2 as font
Private fnt3 as font
Private brs1 as brush
Private brs2 as brush
Private brs3 as brush
Private pen1 as Pen
Private pen2 as Pen
Private pen3 as Pen
Private grp as Graphic
Private データ位置を保存する為の変数
Private Sub MyReport_BeginPrint(sender As Object, e As System.Drawing.Printing.PrintEventArgs) Handles Me.BeginPrint
font,brush,Pen初期化
データ開始の為の初期化
End Sub
Private Sub MyReport_EndPrint(sender As Object, e As System.Drawing.Printing.PrintEventArgs) Handles Me.EndPrint
font,brush,Pen破棄
End Sub
Private Sub MyReport_PrintPage(sender As Object, e As System.Drawing.Printing.PrintPageEventArgs) Handles Me.PrintPage
grp = e.Graphic
If 1ページ目 Then
PrintReportHead()
End If
PrintPageHead()
PrintDetailPart1()
PrintDetailPart2()
PrintDetailPart3()
PrintPageFoot()
If ページ継続条件 Then
e.HasMorePages = True
Else
PrintReportFoot
e.HasMorePages = False
End If
End Sub
End Class
|