Nasıl yapılır: Windows Forms'da Bir Kullanıcının Bilgisayarına Bağlanan Yazıcıları Seçme
Kullanıcılar genellikle yazdırılacak varsayılan yazıcıdan başka bir yazıcı seçmek ister. Kullanıcıların şu anda bileşeni kullanarak yüklü olanlar arasından bir yazıcı seçmelerini PrintDialog sebilirsiniz. bileşeni PrintDialog aracılığıyla bileşeni DialogResultPrintDialog yakalanır ve yazıcıyı seçmek için kullanılır.
Aşağıdaki yordamda, varsayılan yazıcıya yazdırılacak bir metin dosyası seçilmiştir. Daha PrintDialog sonra sınıfı örneği olur.
Yazıcı seçmek ve ardından bir dosya yazdırmak için
Bileşeni kullanarak kullanılacak yazıcıyı PrintDialog seçin.
Aşağıdaki kod örneğinde, işleyen iki olay vardır. İlk olarak, Button bir denetimin olayında, sınıfı örneği ve kullanıcı Click tarafından seçilen yazıcı PrintDialog özelliğinde DialogResult yakalanır.
İkinci olayda, PrintPage bileşenin PrintDocument olayı, belirtilen yazıcıya bir örnek belge yazdırılır.
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 Subprivate 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# ve Visual C++) Olay işleyicisini kaydetmek için formun oluşturucus una aşağıdaki kodu ekleyin.
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);