322
Chương 8: Đồ họa, đa phương tiện, và in ấn
Trước khi sử dụng lớp
PrintDialog
, bạn phải gắn nó vào đối tượng
PrintDocument
bằng cách
thiết lập thuộc tính
PrintDialog.Document
. Theo đó, bất kỳ sự thay đổi nào do người dùng
thực hiện trong hộp thoại in sẽ tự động được áp dụng vào đối tượng
PrintDocument
.
Ví dụ dưới đây là một form chỉ chứa một nút lệnh. Khi người dùng nhắp vào nút này, ứng
dụng sẽ tạo một đối tượng
PrintDocument
mới, cho phép người dùng cấu hình các thiết lập in,
và rồi bắt đầu thao tác in bất đồng bộ. Phương thức thụ lý sự kiện đáp ứng cho sự kiện
PrintPage
sẽ ghi ra nhiều dòng text và một bức hình.
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Printing;
public class SimplePrint : System.Windows.Forms.Form {
private System.Windows.Forms.Button cmdPrint;
// (Bỏ qua phần mã designer.)
private void cmdPrint_Click(object sender, System.EventArgs e) {
// Tạo một văn bản và gắn vào phương thức thụ lý sự kiện.
PrintDocument doc = new PrintDocument();
doc.PrintPage += new PrintPageEventHandler(this.Doc_PrintPage);
// Cho phép người dùng chọn một máy in
// và chỉ định các thiết lập khác.
PrintDialog dlgSettings = new PrintDialog();
dlgSettings.Document = doc;
// Nếu người dùng nhắp OK thì in văn bản.
if (dlgSettings.ShowDialog() == DialogResult.OK) {
// Phương thức này trả về tức thì, trước khi tác vụ in
// bắt đầu. Sự kiện PrintPage sẽ phát sinh bất đồng bộ.
doc.Print();
}