Comment : imprimer des graphiques dans Windows Forms
Mise à jour : novembre 2007
Il arrive souvent de devoir imprimer des graphismes dans une application Windows. La classe Graphics propose des méthodes pour dessiner des objets sur un périphérique, comme un écran ou une imprimante.
Pour imprimer des graphismes
Ajoutez le composant PrintDocument au formulaire.
Dans le gestionnaire d'événements PrintPage, utilisez la propriété Graphics de la classe PrintPageEventArgs pour indiquer à l'imprimante le type de graphisme dont il s'agit.
L'exemple de code suivant affiche un gestionnaire d'événements qui est utilisé pour créer une ellipse bleue dans un rectangle englobant. Le rectangle possède l'emplacement et les dimensions suivants : il commence à 100, 150 avec une largeur de 250 et une hauteur de 250.
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.FillEllipse(Brushes.Blue, New Rectangle(100, 150, 250, 250)) End Sub
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.FillRectangle(Brushes.Blue, new Rectangle(100, 150, 250, 250)); }
private void printDocument1_PrintPage(Object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.get_Graphics().FillRectangle(Brushes.get_Blue(), new Rectangle(100, 150, 250, 250)); } private: void printDocument1_PrintPage(System::Object ^ sender, System::Drawing::Printing::PrintPageEventArgs ^ e) { e->Graphics->FillRectangle(Brushes::Blue, Rectangle(100, 150, 250, 250)); }
(Visual C#, Visual J# et Visual C++) Placez le code suivant dans le constructeur du formulaire pour inscrire le gestionnaire d'événements.
this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler (this.printDocument1_PrintPage);
this.printDocument1.add_PrintPage(new System.Drawing.Printing.PrintPageEventHandler( this.printDocument1_PrintPage)); this->printDocument1->PrintPage += gcnew System::Drawing::Printing::PrintPageEventHandler (this, &Form1::printDocument1_PrintPage);