Freigeben über


Vorgehensweise: Auswählen der einem Benutzercomputer zugewiesenen Drucker in Windows Forms

Häufig möchten Benutzer einen anderen Drucker als den Standarddrucker zum Drucken auswählen. Sie können es Benutzern ermöglichen, mithilfe der PrintDialog -Komponente einen Drucker unter den Druckern auszuwählen, die derzeit installiert sind. Über die Komponente PrintDialog wird das DialogResult der Komponente PrintDialog aufgezeichnet und für die Auswahl des Druckers verwendet.

In der folgenden Prozedur wird eine Textdatei ausgewählt, die auf dem Standarddrucker gedruckt werden soll. Die PrintDialog -Klasse wird dann instanziiert.

So wählen Sie einen Drucker aus und drucken eine Datei

  1. Wählen Sie den zu verwendenden Drucker mithilfe der PrintDialog-Komponente aus.

    Im folgenden Codebeispiel werden zwei Ereignisse behandelt. Im ersten Ereignis, einem Click-Ereignis des Steuerelements Button, wird die PrintDialog-Klasse instanziiert, und der vom Benutzer ausgewählte Drucker wird in der Eigenschaft DialogResult erfasst.

    Im zweiten Ereignis, dem PrintPage-Ereignis der PrintDocument-Komponente, wird ein Beispieldokument über den angegebenen Drucker gedruckt.

    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# und Visual C++) Fügen Sie folgenden Code in den Konstruktor des Formulars ein, um den Ereignishandler zu registrieren.

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

Weitere Informationen