DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

印刷プレビューダイアログの表示位置や表示倍率を指定する

印刷プレビューを表示する」で紹介したように、PrintPreviewDialogクラスで印刷プレビューダイアログを表示させた時に、ダイアログの表示位置や表示倍率を指定する方法を紹介します。

PrintPreviewDialogクラスはFormクラスから派生していますので、基本的にはFormクラスと同様の方法で表示位置を指定することができます。フォームの位置を指定する方法に関して詳しくは、「フォームの位置と大きさを取得、変更する」をご覧ください。

また表示倍率は、PrintPreviewDialogで使われているPrintPreviewControlオブジェクトを取得し、そのZoomプロパティを設定することにより変更が可能です。PrintPreviewControlオブジェクトはPrintPreviewDialog.PrintPreviewControlプロパティで取得できます。

なお、PrintPreviewControlプロパティはヘルプで「このメンバは、.NET Framework インフラストラクチャのサポートを目的としています。独自に作成したコード内で直接使用することはできません。」と書かれていますので、これが適当な方法である保障はありません。

印刷プレビューを表示する」で紹介しているコードに手を加えて、印刷プレビューダイアログの表示位置(及びサイズ)と表示倍率を指定する例を以下に示します。ここでは、印刷プレビューダイアログを表示するコード(Button1_Clickメソッド内のコード)のみを示し、それ以外は省略します。

VB.NET
コードを隠すコードを選択
'PrintDocumentオブジェクトの作成
Dim pd As New System.Drawing.Printing.PrintDocument
'PrintPageイベントハンドラの追加
AddHandler pd.PrintPage, AddressOf pd_PrintPage

'PrintPreviewDialogオブジェクトの作成
Dim ppd As New PrintPreviewDialog

'はじめの表示位置を指定する
ppd.StartPosition = FormStartPosition.Manual
ppd.SetBounds(0, 0, 400, 400)
'表示倍率を2倍にする
ppd.PrintPreviewControl.Zoom = 2

'プレビューするPrintDocumentを設定
ppd.Document = pd
'印刷プレビューダイアログを表示する
ppd.ShowDialog()
C#
コードを隠すコードを選択
//PrintDocumentオブジェクトの作成
System.Drawing.Printing.PrintDocument pd =
    new System.Drawing.Printing.PrintDocument();
//PrintPageイベントハンドラの追加
pd.PrintPage +=
    new System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage);

//PrintPreviewDialogオブジェクトの作成
PrintPreviewDialog ppd = new PrintPreviewDialog();

//はじめの表示位置を指定する
ppd.StartPosition = FormStartPosition.Manual;
ppd.SetBounds(0, 0, 400, 400);
//表示倍率を2倍にする
ppd.PrintPreviewControl.Zoom = 2;

//プレビューするPrintDocumentを設定
ppd.Document = pd;
//印刷プレビューダイアログを表示する
ppd.ShowDialog();

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • イベントハンドラの意味が分からない、C#のコードをそのまま書いても動かないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。