Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Nell'esempio riportato di seguito viene illustrata la stampa dell'anteprima di una copia del form corrente.
Esempio
[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();
printPreviewDialog1.Show();
}
Compilazione del codice
L'esempio presenta i seguenti requisiti:
Un componente PrintDocument denominato printDocument1 con un gestore eventi PrintPage.
Un componente PrintPreviewDialog denominato printPreviewDialog1 con la proprietà Document impostata su printDocument1.
Un Button denominato printButton con un gestore eventi Click.
Il codice di esempio sostituisce i gestori eventi esistenti. Quando si fa clic su printButton viene visualizzata un'anteprima di stampa del form.
Programmazione efficiente
Le seguenti condizioni possono generare un'eccezione:
Non si dispone dell'autorizzazione per accedere alla stampante.
Non si dispone dell'autorizzazione per l'utilizzo di codice non gestito.
Non è installata alcuna stampante.
La finestra di dialogo dell'anteprima di stampa è stata precedentemente eliminata. Tale situazione si verifica in seguito alla chiusura della finestra di dialogo dell'anteprima di stampa.
Sicurezza
Per eseguire questo esempio, è necessario disporre dell'autorizzazione per l'esecuzione del codice non gestito e per l'accesso alla stampante.
Vedere anche
Concetti
Progettazione di un'interfaccia utente in Visual C#
Altre risorse
Personalizzazione, visualizzazione e stampa di un Windows Form