.NET 4で、PrintPreviewControl.Document の振る舞いが変わりました。 この変更に関する、公式ドキュメントが発見できませんでした。 動作検証用のリポジトリです。
PrintPreviewControl.Document では、値をセットしたときに
.NET 2 ~ 3.5 の間で InvalidatePreview()
が呼ばれません。
.NET 4 以降は InvalidatePreview()
が呼ばれます。
.NET 3.5と.NET 4のプロジェクトを用意してあります。 それぞれデバッグ実行すると同じように動きます。
ほぼ同一のソースコードです。
.NET 3.5では、Form.cs
の24行目で printPreviewControl.InvalidatePreview();
を呼び出しを追加しています。
この行をコメントアウトすると、印刷プレビューが表示されなくなります。
NET 5 のソースコードによると InvalidatePreview()
が呼ばれます。
public PrintDocument Document
{
get { return document; }
set
{
document = value;
InvalidatePreview();
}
}
印刷プレビューを表示する - .NET Tips (VB.NET,C#...)
.NET Framework 1.1以前ではPrintPreviewControl.Documentを設定するとInvalidatePreviewメソッドが呼び出されていましたが、2.0以降では呼び出されません。
とあります。 このことから .NET 2 ~ 3.5 の間で InvalidatePreview(); が呼ばれていなかったようです。