Condividi tramite


Procedura: selezionare le stampanti connesse al computer dell'utente in Windows Form

Spesso l'utente desidera utilizzare per la stampa una stampante diversa da quella predefinita. È possibile consentire agli utenti di scegliere una stampante tra quelle attualmente installate utilizzando il componente PrintDialog. Attraverso il componente PrintDialog l'oggetto DialogResult del componente PrintDialog viene acquisito e utilizzato per selezionare la stampante.

Nella procedura seguente viene selezionato un file di testo per la stampa sulla stampante predefinita. Viene quindi creata un'istanza della classe PrintDialog.

Per selezionare una stampante e stampare un file

  • Selezionare la stampante da utilizzare tramite il componente PrintDialog.

    Nell'esempio di codice riportato di seguito vengono gestiti due eventi. Nel primo, un evento Click del controllo Button, viene creata un'istanza della classe PrintDialoge la stampante selezionata dall'utente viene acquisita nella proprietà DialogResult.

    Nel secondo, l'evento PrintPage del componente PrintDocument, viene stampato un documento di esempio sulla stampante specificata.

    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# e Visual C++) Inserire il codice seguente nel costruttore del form per registrare il gestore eventi.

    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);
    

Vedere anche

Altre risorse

Supporto per la stampa in Windows Form