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

Die Benutzer wählen zum Drucken häufig einen Drucker aus, der nicht als Standarddrucker eingerichtet ist. Sie können es den Benutzern ermöglichen, einen derzeit installierten Drucker mithilfe der PrintDialog-Komponente auszuwählen. Mit der PrintDialog-Komponente wird das DialogResult der PrintDialog-Komponente erfasst und für die Auswahl des Druckers verwendet.

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

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

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

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

    Beim zweiten handelt es sich um das PrintPage-Ereignis der PrintDocument-Komponente. Dabei wird ein Beispieldokument auf dem 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 den folgenden Code im 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);
    

Siehe auch

Weitere Ressourcen

Druckunterstützung in Windows Forms