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

タイトル Re^3: 印刷で用紙の横向きと縦向きをきりかえる
投稿日: 2008/03/06(Thu) 14:15
投稿者魔界の仮面弁士
> はじめに乗せたものを直してふたたび乗せます。
乗せる→載せる?


> 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 を使う事になるというわけです。

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

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