フォームを印刷する方法 (Windows フォーム .NET)
開発プロセスの一環として、Windows フォームのコピーを印刷したくなることはよくあります。 次のコード例で、CopyFromScreen メソッドを使用して現在のフォームのコピーを印刷する方法を示しています。
例
コード例を実行するには、以下の設定で 2 つのコンポーネントをフォームに追加します。
Object | Property\Event | Value |
---|---|---|
Button | Name |
Button1 |
Click |
Button1_Click |
|
PrintDocument | Name |
PrintDocument1 |
PrintPage |
PrintDocument1_PrintPage |
Button1
がクリックされると次のコードが実行されます。 このコードは、フォームから Graphics
オブジェクトを作成し、その内容を memoryImage
という名前の Bitmap
変数に保存します。 PrintDocument.Print メソッドが呼び出され、それによって PrintPage イベントが呼び出されます。 印刷イベント ハンドラーは、プリンター ページの Graphics
オブジェクトに memoryImage
ビットマップを描画します。 印刷イベント ハンドラー コードがリターンすると、ページが印刷されます。
namespace Sample_print_win_form1
{
public partial class Form1 : Form
{
Bitmap memoryImage;
public Form1()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
Graphics myGraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, myGraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
memoryGraphics.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, s);
printDocument1.Print();
}
private void PrintDocument1_PrintPage(
System.Object sender,
System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
}
}
}
Public Class Form1
Dim memoryImage As Bitmap
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myGraphics As Graphics = Me.CreateGraphics()
Dim s As Size = Me.Size
memoryImage = New Bitmap(s.Width, s.Height, myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
memoryGraphics.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, s)
PrintDocument1.Print()
End Sub
Private Sub PrintDocument1_PrintPage(
ByVal sender As System.Object,
ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawImage(memoryImage, 0, 0)
End Sub
End Class
信頼性の高いプログラミング
次の条件を満たす場合は、例外が発生する可能性があります。
プリンターにアクセスできるアクセス許可がありません。
プリンターがインストールされていません。
.NET セキュリティ
このコード例を実行するには、コンピューターで使っているプリンターにアクセスできるアクセス許可が必要です。
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET Desktop feedback