Практическое руководство. Создание стандартных задания печати в Windows Forms
Обновлен: Ноябрь 2007
Основой печати в Windows Forms является компонент PrintDocument, а точнее, событие PrintPage. Чтобы определить объект печати и способ печати, требуется написать код для обработчика события PrintPage.
Чтобы создать задание печати, выполните следующие действия.
Добавьте компонент PrintDocument в форму.
Напишите обработчик события PrintPage.
Потребуется включить в код собственную логику печати. Помимо этого потребуется указать материал, который нужно напечатать.
В следующем примере в качестве материала для печати в обработчике событий PrintPage создается образец рисунка в виде красного прямоугольника.
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 printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.Graphics.FillRectangle(Brushes.Red, new Rectangle(500, 500, 500, 500)); }
private void printDocument1_PrintPage(Object sender, System.Drawing.Printing.PrintPageEventArgs e) { e.get_Graphics().FillRectangle(Brushes.get_Red(), new Rectangle(500, 500, 500, 500)); }
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 J# и Visual C++) Добавьте в конструктор формы следующий код, чтобы зарегистрировать обработчик событий.
this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler (this.printDocument1_PrintPage);
this.printDocument1.add_PrintPage(new System.Drawing.Printing.PrintPageEventHandler (this.printDocument1_PrintPage));
printDocument1->PrintPage += gcnew System::Drawing::Printing::PrintPageEventHandler (this, &Form1::printDocument1_PrintPage);
Кроме того, можно написать обработчики событий BeginPrint и EndPrint, чтобы, например, добавить целое число, представляющее общее число страниц для печати, которое уменьшается при печати каждой страницы.
Примечание. Для предоставления пользователям простого и эффективного пользовательского интерфейса можно добавить в форму компонент PrintDialog. Задавая свойство Document компонента PrintDialog, можно настроить параметры печати для документа, с которым работает форма. Дополнительные сведения о компоненте PrintDialog см. в разделе Компонент PrintDialog (Windows Forms).
Дополнительные сведения об особенностях заданий печати в Windows Forms, в том числе о способах создания заданий печати программными средствами, см. в разделе PrintPageEventArgs.