Udostępnij za pośrednictwem


Porady: wybieranie w formularzach systemu Windows drukarek podłączonych do komputera użytkownika

Często użytkownicy chcą wybrać drukarkę inną niż drukarka domyślna do drukowania. Możesz zezwolić użytkownikom na wybór drukarki spośród aktualnie zainstalowanych przy użyciu PrintDialog składnika . PrintDialog Za pośrednictwem składnika składnik DialogResultPrintDialog jest przechwytywany i używany do wybierania drukarki.

W poniższej procedurze plik tekstowy jest wybierany do wydrukowania na drukarce domyślnej. Następnie klasę PrintDialog tworzy się wystąpienie.

Aby wybrać drukarkę, a następnie wydrukować plik

  1. Wybierz drukarkę, która ma być używana przy użyciu PrintDialog składnika.

    W poniższym przykładzie kodu są obsługiwane dwa zdarzenia. W pierwszej kolejności Button zdarzenie kontrolki Click tworzy PrintDialog wystąpienie klasy, a drukarka wybrana przez użytkownika jest przechwytywana we DialogResult właściwości .

    W drugim przypadku PrintPage zdarzenie PrintDocument składnika przykładowy dokument jest drukowany na określonej drukarce.

    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# i Visual C++) Umieść następujący kod w konstruktorze formularza, aby zarejestrować procedurę obsługi zdarzeń.

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

Zobacz też