投稿者 shu  (社会人) 投稿日時 2012/2/7 16:16:50
PrintDocument1.Print()
をする前に描画ページ毎のデータに分割する必要があります。
分割したデータはPrivate変数にでも設定しておくと良いと思います。
この場合、行毎にした方が良いかもしれません。

ページ描画をしながら次のデータを描画するとそのページ内に収まらない
状態になるか分割したデータが最後までいったらループを終了して
データが最後までいっていたらe.HasMorePages = FalseをFalse、最後まで
いっていなかったらe.HasMorePages = Trueとするとよいと思います。
なお分割したデータの位置を記憶するのにもPrivate変数があると便利です。

PrintDocumentを使ったコーディングをする場合、PrintDocumentからの派生クラス
またはPrintDocumentをメンバに持つクラスを別に作成された方が処理が分かりやすく
なると思います。