じゃんぬねっと日誌

ネタと雑記と時々プログラミング

目次

Blog 利用状況

ニュース

不況すぎる件。

スポンサードリンク

運営サイト

  • C# と VB.NET の入門サイト

書庫

HasMorePages プロパティは紛らわしい?

技術系コミュニティで、HasMorePages プロパティに関して以下のような誤解が多く見受けられます。

PrintDocument の PrintPage イベントで印刷しています。
PrintPageEventArgs イベント引数の HasMorePages プロパティを true にした後、2 ページ目用の印刷内容を Draw しているのに次ページへ印刷されず、1 ページ目に印刷されます。

HasMorePages プロパティは即座に改ページが行われるもの、という誤解があるということです。
私の知る限りですが、ここ 1 年でも 4 件ほどありました。

確かに、リファレンスには HasMorePages プロパティについて、

追加のページを印刷するかどうかを示す値を取得または設定します。

としか書かれておらず、紛らわしいかもしれません。
ただし、PrintDocument クラスの PrintPage イベントについては以下のように書かれています。

出力を指定する他に、PrintPageEventArgs.HasMorePages プロパティを true に設定することによって、印刷する追加ページがあるかどうかを指定できます。

これに加え、「結果、続けて次ページ用の PrintPage イベントを起こすかどうかを設定する」という旨を書いて欲しいな、と思いました。
これ、どこかのフォーラムに既にあがっていたような気がしますので、フィードバックは多分しません。

まあ、即座に改ページするのであれば、HasMorePages という名前の プロパティ ではなく、~NextPage という名前の メソッド にするでしょうから、察しの良い方はリファレンスを見なくても気付きそうです。
つまり、Has から始まる名称 + プロパティという組み合わせからして、直接「改ページという '作用'」をしなさそうだと感じるということです。

投稿日時 : 2006年8月15日 22:22

コメントを追加

# re: HasMorePages プロパティは紛らわしい? 2006/08/16 15:57 R・田中一郎

ボクは全然迷いませんでした。
だってイベントに呼ばれて描画ルーチン書く訳ですし、イベント引数にフラグを設定する訳ですし・・・ねぇ。

# re: HasMorePages プロパティは紛らわしい? 2006/08/16 21:18 じゃんぬ

PrintPage イベントのイベント引数の概念だからという話は、
PrintPage が 1 ページに付き 1 度呼ばれるということを知っていないと説明できないと思います。

やっぱり、PrintPage イベントのフローを明記しておかないと...

# re: HasMorePages プロパティは紛らわしい? 2006/08/18 14:32 R・田中一郎

>PrintPage が 1 ページに付き 1 度呼ばれるということを知っていないと説明できないと思

そういわれてみれば確かに。
PrintPage という名前から、ボクは1ページに1回呼ばれるものだと解釈して使ったので迷わなかったとも言えますね。

タイトル  
名前  
URL
コメント