技術系コミュニティで、HasMorePages プロパティに関して以下のような誤解が多く見受けられます。
PrintDocument の PrintPage イベントで印刷しています。
PrintPageEventArgs イベント引数の HasMorePages プロパティを true にした後、2 ページ目用の印刷内容を Draw しているのに次ページへ印刷されず、1 ページ目に印刷されます。
HasMorePages プロパティは即座に改ページが行われるもの、という誤解があるということです。
私の知る限りですが、ここ 1 年でも 4 件ほどありました。
確かに、リファレンスには HasMorePages プロパティについて、
追加のページを印刷するかどうかを示す値を取得または設定します。
としか書かれておらず、紛らわしいかもしれません。
ただし、PrintDocument クラスの PrintPage イベントについては以下のように書かれています。
出力を指定する他に、PrintPageEventArgs.HasMorePages プロパティを true に設定することによって、印刷する追加ページがあるかどうかを指定できます。
これに加え、「結果、続けて次ページ用の PrintPage イベントを起こすかどうかを設定する」という旨を書いて欲しいな、と思いました。
これ、どこかのフォーラムに既にあがっていたような気がしますので、フィードバックは多分しません。
まあ、即座に改ページするのであれば、HasMorePages という名前の プロパティ ではなく、~NextPage という名前の メソッド にするでしょうから、察しの良い方はリファレンスを見なくても気付きそうです。
つまり、Has から始まる名称 + プロパティという組み合わせからして、直接「改ページという '作用'」をしなさそうだと感じるということです。