如何:在 Windows Form 中選擇附加至使用者電腦的印表機
通常,使用者會想要選擇列印到非預設的印表機。 使用 PrintDialog 元件,即可讓使用者從目前安裝的印表機中選擇印表機。 透過 PrintDialog 元件,擷取 DialogResult 元件的 PrintDialog 並將其用來選取印表機。
在下列程序中,選取要列印至預設印表機的文字檔案。 然後具現化 PrintDialog 類別。
選擇印表機,然後列印檔案
使用 PrintDialog 元件選取要使用的印表機。
在下列程式碼範例中,有兩個要處理的事件。 在第一個 Button 控制項的 Click 事件中,會具現化 PrintDialog 類別,並在 DialogResult 屬性中擷取使用者選取的印表機。
在第二個事件中,PrintDocument 元件的 PrintPage 事件會將範例文件列印到指定的印表機。
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# 和 Visual C++) 請將下列程式碼置於表單的建構函式中,以登錄事件處理常式。
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);