Condividi tramite


Procedura: Scegliere le stampanti collegate al computer di un utente in Windows Form

Spesso, gli utenti vogliono scegliere una stampante diversa dalla stampante predefinita in cui stampare. È possibile consentire agli utenti di scegliere una stampante tra quelle attualmente installate usando il componente PrintDialog. Tramite il componente PrintDialog, la DialogResult del componente PrintDialog viene acquisita e usata per selezionare la stampante.

Nella procedura seguente viene selezionato un file di testo da stampare nella stampante predefinita. Viene quindi creata un'istanza della classe PrintDialog.

Per scegliere una stampante e quindi stampare un file

  1. Selezionare la stampante da utilizzare utilizzando il componente PrintDialog.

    Nell'esempio di codice seguente vengono gestiti due eventi. Nel primo viene gestito un evento Click di un controllo Button, la classe PrintDialog viene istanziata e la stampante selezionata dall'utente viene memorizzata nella proprietà DialogResult.

    Nel secondo evento, l'evento PrintPage del componente PrintDocument, viene stampato un documento di esempio nella 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 modulo 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