Dela via


Anvisningar: Välj skrivare som är anslutna till en användares dator i Windows-formulär

Användare vill ofta välja en annan skrivare än den standardskrivare som ska skrivas ut till. Du kan göra så att användarna kan välja en skrivare bland dem som för närvarande är installerade med hjälp av komponenten PrintDialog. Genom komponenten PrintDialog fångas DialogResult från komponenten PrintDialog och används för att välja skrivaren.

I följande procedur väljs en textfil som ska skrivas ut till standardskrivaren. Sedan instansieras klassen PrintDialog.

Så här väljer du en skrivare och skriver sedan ut en fil

  1. Välj den skrivare som ska användas med hjälp av komponenten PrintDialog.

    I följande kodexempel hanteras två händelser. I den första Button kontrollens Click-händelse instansieras klassen PrintDialog och skrivaren som väljs av användaren registreras i egenskapen DialogResult.

    I den andra händelsen, den PrintPage händelsen för komponenten PrintDocument, skrivs ett exempeldokument ut till den angivna skrivaren.

    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# och Visual C++) Placera följande kod i formulärets konstruktor för att registrera händelsehanteraren.

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

Se även