Partager via


Guide pratique pour choisir les imprimantes attachées à l’ordinateur d’un utilisateur dans Windows Forms

Souvent, les utilisateurs souhaitent choisir une imprimante autre que l’imprimante par défaut à imprimer. Vous pouvez autoriser les utilisateurs à choisir une imprimante parmi celles actuellement installées à l’aide du composant PrintDialog. Par le biais du composant PrintDialog, le DialogResult du composant PrintDialog est capturé et utilisé pour sélectionner l’imprimante.

Dans la procédure suivante, un fichier texte est sélectionné pour être imprimé sur l’imprimante par défaut. La classe PrintDialog est ensuite instanciée.

Pour choisir une imprimante, puis imprimer un fichier

  1. Sélectionnez l’imprimante à utiliser à l’aide du composant PrintDialog.

    Dans l’exemple de code suivant, deux événements sont gérés. Dans le premier cas, lors de l'événement Click d'un contrôle Button, la classe PrintDialog est instanciée et l'imprimante sélectionnée par l'utilisateur est enregistrée dans la propriété DialogResult.

    Dans le deuxième événement, l’événement PrintPage du composant PrintDocument, un exemple de document est imprimé sur l’imprimante spécifiée.

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click  
       Dim PrintDialog1 As New PrintDialog()  
       PrintDialog1.Document = PrintDocument1  
       Dim result As DialogResult = PrintDialog1.ShowDialog()  
    
       If (result = DialogResult.OK) Then  
         PrintDocument1.Print()  
       End If
    
    End Sub  
    
    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage  
       e.Graphics.FillRectangle(Brushes.Red, New Rectangle(500, 500, 500, 500))
    End Sub  
    
    private void button1_Click(object sender, System.EventArgs e)  
    {  
       PrintDialog printDialog1 = new PrintDialog();  
       printDialog1.Document = printDocument1;  
       DialogResult result = printDialog1.ShowDialog();  
       if (result == DialogResult.OK)  
       {  
          printDocument1.Print();  
       }  
    }  
    
    private void printDocument1_PrintPage(object sender,
    System.Drawing.Printing.PrintPageEventArgs e)  
    {  
       e.Graphics.FillRectangle(Brushes.Red,
         new Rectangle(500, 500, 500, 500));  
    }  
    
    private:  
       void button1_Click(System::Object ^ sender,  
          System::EventArgs ^ e)  
       {  
          PrintDialog ^ printDialog1 = gcnew PrintDialog();  
          printDialog1->Document = printDocument1;  
          System::Windows::Forms::DialogResult result =
             printDialog1->ShowDialog();  
          if (result == DialogResult::OK)  
          {  
             printDocument1->Print();  
          }  
       }  
    private:  
       void printDocument1_PrintPage(System::Object ^ sender,  
          System::Drawing::Printing::PrintPageEventArgs ^ e)  
       {  
          e->Graphics->FillRectangle(Brushes::Red,  
             Rectangle(500, 500, 500, 500));  
       }  
    

    (Visual C# 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.button1.Click += new System.EventHandler(this.button1_Click);  
    
    this->printDocument1->PrintPage += gcnew  
       System::Drawing::Printing::PrintPageEventHandler  
       (this, &Form1::printDocument1_PrintPage);  
    this->button1->Click += gcnew  
       System::EventHandler(this, &Form1::button1_Click);  
    

Voir aussi