共用方式為


HOW TO:列印表單

更新:2007 年 11 月

這個範例示範如何列印一份目前的表單。

範例

[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern long BitBlt (IntPtr hdcDest, int nXDest, int nYDest, 
    int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
private Bitmap memoryImage;
private void CaptureScreen()
{
    Graphics mygraphics = this.CreateGraphics();
    Size s = this.Size;
    memoryImage = new Bitmap(s.Width, s.Height, mygraphics);
    Graphics memoryGraphics = Graphics.FromImage(memoryImage);
    IntPtr dc1 = mygraphics.GetHdc();
    IntPtr dc2 = memoryGraphics.GetHdc();
    BitBlt(dc2, 0, 0, this.ClientRectangle.Width,
        this.ClientRectangle.Height, dc1, 0, 0, 13369376);
    mygraphics.ReleaseHdc(dc1);
    memoryGraphics.ReleaseHdc(dc2);
}
private void printDocument1_PrintPage(System.Object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    e.Graphics.DrawImage(memoryImage, 0, 0);
}
private void printButton_Click(System.Object sender, System.EventArgs e)
{
    CaptureScreen();
    printDocument1.Print();
}

編譯程式碼

這個範例需要:

  • 名為 printDocument1 且具有 PrintPage 事件處理常式的 PrintDocument 元件。

  • 名為 printButton 且具有 Click 事件處理常式的 Button

範例程式碼會取代現有的事件處理常式。按一下 printButton 時就會列印表單。

穩固程式設計

以下情形可能會導致例外狀況:

  • 您沒有印表機的存取權限。

  • 您沒有 Unmanaged 程式碼的使用權限。

  • 未安裝任何印表機。

安全性

您必須具有執行 Unmanaged 程式碼和存取印表機的權限,才能執行這個範例。

請參閱

概念

在 Visual C# 中設計使用者介面

其他資源

自訂、顯示和列印 Windows Form

Visual C# 導覽