方法 : 標準の Windows フォーム印刷ジョブを作成する
更新 : 2007 年 11 月
Windows フォームでの印刷の基盤となるのは、PrintDocument コンポーネントです。より具体的に言えば、PrintPage イベントです。PrintPage イベントを処理するコードを記述することにより、印刷対象と印刷方法を指定できます。
印刷ジョブを作成するには
フォームに PrintDocument コンポーネントを追加します。
PrintPage イベントを処理するコードを記述します。
独自の印刷ロジックをコーディングする必要があります。また、印刷する対象も指定する必要があります。
次のコード例では、印刷対象として PrintPage イベント ハンドラ内で赤い四角形のサンプル グラフィックを作成しています。
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.FillRectangle(Brushes.Red, New Rectangle(500, 500, 500, 500)) End Sub
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.FillRectangle(Brushes.Red, new Rectangle(500, 500, 500, 500)); }
private void printDocument1_PrintPage(Object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.get_Graphics().FillRectangle(Brushes.get_Red(), new Rectangle(500, 500, 500, 500)); }
private: void printDocument1_PrintPage(System::Object ^ sender, System::Drawing::Printing::PrintPageEventArgs ^ e) { e->Graphics->FillRectangle(Brushes::Red, Rectangle(500, 500, 500, 500)); }
(Visual C#、Visual J#、および Visual C++) フォームのコンストラクタに次のコードを挿入してイベント ハンドラを登録します。
this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler (this.printDocument1_PrintPage);
this.printDocument1.add_PrintPage(new System.Drawing.Printing.PrintPageEventHandler (this.printDocument1_PrintPage));
printDocument1->PrintPage += gcnew System::Drawing::Printing::PrintPageEventHandler (this, &Form1::printDocument1_PrintPage);
また、BeginPrint イベントおよび EndPrint イベントに対するコードを記述することが必要な場合もあります。その場合、各ページが印刷されるたびに、印刷する合計ページ数を表す整数がデクリメントされるようにもできます。
メモ : フォームに PrintDialog コンポーネントを追加すると、明快で効率的なユーザー インターフェイス (UI) をユーザーに提供できます。PrintDialog コンポーネントの Document プロパティを設定することにより、フォーム上で作業中の印刷ドキュメントに関連するプロパティを設定できます。PrintDialog コンポーネントの詳細については、「PrintDialog コンポーネント (Windows フォーム)」を参照してください。
印刷ジョブをプログラムで作成する方法など、Windows フォームの印刷ジョブの詳細については、「PrintPageEventArgs」のトピックを参照してください。