在設計應用程式的過程中,您可能會以代表列印頁面的方式設計表單。 下列程式碼範例示範如何使用 CopyFromScreen 方法列印目前表單的複本。
範例
若要執行範例程式碼,請使用下列設定將兩個元件新增至表單:
| 物體 | 屬性\事件 | 價值觀 |
|---|---|---|
| 按鈕 | Name |
Button1 |
Click |
Button1_Click |
|
| PrintDocument | Name |
PrintDocument1 |
PrintPage |
PrintDocument1_PrintPage |
按一下 Button1 時,會執行下列程式碼。 程式碼會從表單建立 Graphics 物件,並將其內容儲存至名為 Bitmap 的 memoryImage 變數。 呼叫 PrintDocument.Print 方法,它會叫用 PrintPage 事件。 列印事件處理常式會在印表機頁面的 memoryImage 物件上繪製 Graphics 點陣圖。 當列印事件處理常式程式碼傳回時,會列印頁面。
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 安全性
若要執行此程式碼範例,您必須具有存取與電腦搭配使用之印表機的權限。