タイトル : Re^4: 印刷で用紙の横向きと縦向きをきりかえる 投稿日 : 2008/03/06(Thu) 16:41 投稿者 : ひでと
ありがとうございます。 > > はじめに乗せたものを直してふたたび乗せます。 > 乗せる→載せる? 失礼しました。 > > > > Private Sub PageSetting1(ByVal sender As Object, ByRef e As System.Drawing.Printing.PrintPageEventArgs) > > Private Sub PageSetting2(ByVal sender As Object, ByRef e As System.Drawing.Printing.PrintPageEventArgs) > この sender 引数は、何のために設けているのでしょう? > また、何故 e は ByRef にしてあるのでしょう? いろいろいじっていたので、混乱しておりました。 もう一度見直ししてみます。 > > > > Dim nFont As Font > > nFont = New Font("MS 明朝", 10) > Using ステートメントを使いましょう。 > 生成した Font は、使用後に解放しなければなりませんので。 > > > > PageSetting1(sender, e) > 「印刷している最中(PrintPage イベントの中)」で、レイアウト変更を行う事はできません。 > もし、印刷中のレイアウト修正が可能だったとしたら、PrintPage 中の > e.PageBounds や e.MarginBounds まで、動的に変わる事になってしまいます。 > > > つまりレイアウト変更は、「印刷される直前」におこなれなければなりません。 > 全ページを一括指定したいなら、 > PrintDocument1.DefaultPageSettings.Landscape = False > PrintPreviewDialog1.ShowDialog() > のように、印刷処理の直前に行わなければなりませんし、個別指定なら、 > 先のサンプルのように、それぞれの PrintPage が発生する直前に呼び出される > QueryPageSettings を使う事になるというわけです。 なんとなくですが分かりました。QueryPageSettingsのことをもう少し調べてみます。 ありがとうございました。 |