投稿者 hori  (社会人) 投稿日時 2013/11/9 11:19:02
るきおさま。400さま。ご教授ありがとうございます。

「PrintPageイベントは1ページに付き1回発生します。」についての理解不足が原因でした。
当学の、初級35回印刷をもっとしっかり読んでおけばよかったです。
結果的には下記のようにやったら成功しました。

PrintDialog も一応、機能しているようです。

400さまにご教授いただいた方法は、PrintDialog でその都度両面設定することなく
プログラムから自動で設定する方法みたいですので研究してみます。
その方法が分からないから PrintDialog を使ったわけですのでありがとうございます。

以下、うまくいったコードです。ありがとうございました。

=======================================================

 Dim CurrentPage As Integer = 0

    Private WithEvents docToPrint As New Printing.PrintDocument

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

        PrintDialog1.AllowSomePages = True

        PrintDialog1.ShowHelp = True

        PrintDialog1.Document = docToPrint

        Dim result As DialogResult = PrintDialog1.ShowDialog()

        If (result = DialogResult.OK) Then
            docToPrint.Print()
        End If

    End Sub

    Private Sub document_PrintPage(ByVal sender As Object, _
       ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
           Handles docToPrint.PrintPage

        CurrentPage += 1

        If CurrentPage = 1 Then

            '==============pg1===============

            Dim img As Image = Image.FromFile("c:test1.bmp")

            e.Graphics.DrawImage(img, New Rectangle(0, 0, img.Width, img.Height))

            e.HasMorePages = True

            img.Dispose()

        Else
            '==============pg2===============

            Dim img2 As Image = Image.FromFile("c:test2.bmp")

            e.Graphics.DrawImage(img2, New Rectangle(0, 0, img2.Width, img2.Height))

            e.HasMorePages = False

            img2.Dispose()

        End If

    End Sub