Иллюстрированный самоучитель по Visual Basic .NET

Элемент PrintDialog и конфигурация печати. Самостоятельное программирование печати.

Пользователь программы должен иметь возможность выбрать принтер и внести другие изменения в конфигурацию печати. Такую возможность предоставляет элемент PrintDialog. В программе соответствующий фрагмент может выглядеть примерно так:

Private Sub Buttonl_Click(ByVal sender As System.Object,_
ByVal e As System.EventArgs)Handles Buttonl.Click
Dim PhntDialogl As New PrintDialog()
' Следующая строка необходима, потому что информация
' объекта PrinterSettings нужна объекту PrintDialog перед выводом
PrintDialogl.Document = PrintDocumentl
If PrintDialogl.ShowDialog() = DialogResult.OK Then
PrintDocumentl. PrintO
End If
End Sub

Выделенная строка сообщает экземпляру PrintOialog, что связанный с ним документ должен быть экземпляром PrintDocumentl (предполагается, что этот объект был создан ранее). Эта строка необходима, поскольку элемент PrintDialog должен получить некоторые параметры печати (в виде объекта PrintSettings) перед выводом окна. Чтобы передать ему эту информацию, проще всего назначить объект PrintDocument свойству Document.

Самостоятельное программирование печати

Во многих случаях вполне достаточно элемента PrintDialog и автоматически сгенерированного кода, но время от времени требуется реализовать нестандартные возможности печати. Для этого необходимо написать процедуру со следующей сигнатурой:

Private Sub ProcedureToDoThePrinting(ByVal Sender As Object,_
ByVal e As System.Drawing.Printing.PrintPageEventArgs)

Затем процедура при помощи делегата подключается к событию PrintPage класса PrintDocument. Например, для вызова объекта aPrintDocument класса PrintDocument с приведенной выше процедурой aPrintDocument_PrintPage используется команда следующего вида:

AddHandler aPrintDocument.PrintPage, AddressOf Me.aPrintDocument_PrintPage

В следующем фрагменте показано, как выглядит возможная реализация печати в обработчике команды меню Print:

Private Sub mnuPrint_Click(ByVal sender As System.Object,_
ByVal e As System.EventArgs)Handles mnuPrint.Click
Dim aPrintDocument As New PrintDocument()
AddHandler aPrintDocument.PrintPage.
AddressOf Me.aPrintDocument_PrintPage
aPrintDocument.Print()
End Sub
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.