Bagikan melalui


Gambaran umum komponen PrintDialog (Formulir Windows .NET)

Pencetakan di Formulir Windows terutama terdiri dari penggunaan PrintDocument komponen untuk memungkinkan pengguna mencetak. Kontrol PrintPreviewDialog , PrintDialog dan PageSetupDialog komponen menyediakan antarmuka grafis yang familier untuk pengguna sistem operasi Windows.

Komponen PrintDialog adalah kotak dialog yang telah dikonfigurasi sebelumnya yang digunakan untuk memilih printer, memilih halaman yang akan dicetak, dan menentukan pengaturan terkait cetak lainnya di aplikasi berbasis Windows. Ini adalah solusi sederhana untuk printer dan pengaturan terkait cetak alih-alih mengonfigurasi kotak dialog Anda sendiri. Anda dapat mengaktifkan pengguna untuk mencetak banyak bagian dokumen mereka: mencetak semua, mencetak rentang halaman yang dipilih, atau mencetak pilihan. Dengan mengandalkan kotak dialog Windows standar, Anda membuat aplikasi yang fungsionalitas dasarnya segera akrab bagi pengguna. Komponen PrintDialog mewarisi dari CommonDialog kelas .

Biasanya, Anda membuat instans PrintDocument baru komponen dan mengatur properti yang menjelaskan apa yang harus dicetak menggunakan PrinterSettings kelas dan PageSettings . Panggilan ke Print metode benar-benar mencetak dokumen.

Bekerja dengan komponen

Gunakan metode PrintDialog.ShowDialog untuk menampilkan dialog pada waktu proses. Komponen ini memiliki properti yang terkait dengan satu pekerjaan cetak (PrintDocument kelas) atau pengaturan printer individu (PrinterSettings kelas). Salah satu dari keduanya, pada gilirannya, dapat dibagikan oleh beberapa printer.

Metode perlihatkan kotak dialog membantu Anda menambahkan kotak dialog cetak ke formulir. Komponen PrintDialog muncul di baki di bagian bawah Formulir Windows Designer di Visual Studio.

Cara mengambil input pengguna dari PrintDialog pada run time

Anda dapat mengatur opsi yang terkait dengan pencetakan pada waktu desain. Terkadang Anda mungkin ingin mengubah opsi ini pada waktu proses, kemungkinan besar karena pilihan yang dibuat oleh pengguna. Anda dapat mengambil input pengguna untuk mencetak dokumen menggunakan PrintDialog komponen dan PrintDocument . Langkah-langkah berikut menunjukkan menampilkan dialog cetak untuk dokumen:

  1. PrintDialog Tambahkan komponen dan PrintDocument ke formulir Anda.

  2. Atur Document properti ke PrintDialog yang PrintDocument ditambahkan ke formulir.

    PrintDialog1.Document = PrintDocument1
    
    printDialog1.Document = printDocument1;
    
  3. PrintDialog Tampilkan komponen dengan menggunakan ShowDialog metode .

    If PrintDialog1.ShowDialog() = DialogResult.OK Then
        PrintDocument1.Print()
    End If
    
    // display show dialog and if user selects "Ok" document is printed
    if (printDialog1.ShowDialog() == DialogResult.OK)
        printDocument1.Print();
    
  4. Pilihan pencetakan pengguna dari dialog akan disalin ke PrinterSettings properti PrintDocument komponen.

Cara membuat pekerjaan cetak

Fondasi pencetakan dalam Formulir Windows adalah PrintDocument komponen —lebih khusus lagi, peristiwa tersebutPrintPage. Dengan menulis kode untuk menangani PrintPage peristiwa, Anda dapat menentukan apa yang harus dicetak dan cara mencetaknya. Langkah-langkah berikut menunjukkan pembuatan pekerjaan cetak:

  1. PrintDocument Tambahkan komponen ke formulir Anda.

  2. Tulis kode untuk menangani PrintPage peristiwa.

    Anda harus membuat kode logika pencetakan Anda sendiri. Selain itu, Anda harus menentukan materi yang akan dicetak.

    Sebagai bahan untuk dicetak, dalam contoh kode berikut, grafik sampel dalam bentuk persegi panjang merah dibuat di penanganan PrintPage aktivitas.

    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(100, 100, 100, 100))
    End Sub
    
    private void PrintDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) =>
        e.Graphics.FillRectangle(Brushes.Red, new Rectangle(100, 100, 100, 100));
    

Anda mungkin juga ingin menulis kode untuk BeginPrint peristiwa dan EndPrint . Ini akan membantu menyertakan bilangan bulat yang mewakili jumlah total halaman untuk dicetak yang diderementasikan saat setiap halaman dicetak.

Catatan

Anda dapat menambahkan PrintDialog komponen ke formulir Anda untuk menyediakan antarmuka pengguna (UI) yang bersih dan efisien kepada pengguna Anda. Document Mengatur properti PrintDialog komponen memungkinkan Anda mengatur properti yang terkait dengan dokumen cetak yang sedang Anda kerjakan pada formulir Anda.

Untuk informasi selengkapnya tentang spesifikasi pekerjaan cetak Formulir Windows, termasuk cara membuat pekerjaan cetak secara terprogram, lihat PrintPageEventArgs.

Cara menyelesaikan pekerjaan cetak

Sering kali, prosesor kata dan aplikasi lain yang melibatkan pencetakan akan menyediakan opsi untuk menampilkan pesan kepada pengguna bahwa pekerjaan cetak selesai. Anda dapat menyediakan fungsionalitas ini di Formulir Windows Anda dengan menangani EndPrint peristiwa PrintDocument komponen.

Prosedur berikut mengharuskan Anda membuat aplikasi berbasis Windows dengan PrintDocument komponen di dalamnya. Prosedur yang diberikan di bawah ini adalah cara standar untuk mengaktifkan pencetakan dari aplikasi berbasis Windows. Untuk informasi selengkapnya tentang mencetak dari Formulir Windows menggunakan PrintDocument komponen, lihat Cara membuat pekerjaan cetak.

  1. Atur DocumentName properti PrintDocument komponen.

    PrintDocument1.DocumentName = "SamplePrintApp"
    
    printDocument1.DocumentName = "SamplePrintApp";
    
  2. Tulis kode untuk menangani EndPrint peristiwa.

    Dalam contoh kode berikut, kotak pesan ditampilkan, menunjukkan bahwa dokumen telah selesai mencetak.

    Private Sub PrintDocument1_EndPrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.EndPrint
        MessageBox.Show(PrintDocument1.DocumentName + " has finished printing.")
    End Sub
    
    private void PrintDocument1_EndPrint(object sender, System.Drawing.Printing.PrintEventArgs e) =>
        MessageBox.Show(printDocument1.DocumentName + " has finished printing.");