Практическое руководство. Создание стандартных задания печати в Windows Forms

Обновлен: Ноябрь 2007

Основой печати в Windows Forms является компонент PrintDocument, а точнее, событие PrintPage. Чтобы определить объект печати и способ печати, требуется написать код для обработчика события PrintPage.

Чтобы создать задание печати, выполните следующие действия.

  1. Добавьте компонент PrintDocument в форму.

  2. Напишите обработчик события 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, чтобы, например, добавить целое число, представляющее общее число страниц для печати, которое уменьшается при печати каждой страницы.

    a585x1he.alert_note(ru-ru,VS.90).gifПримечание.

    Для предоставления пользователям простого и эффективного пользовательского интерфейса можно добавить в форму компонент PrintDialog. Задавая свойство Document компонента PrintDialog, можно настроить параметры печати для документа, с которым работает форма. Дополнительные сведения о компоненте PrintDialog см. в разделе Компонент PrintDialog (Windows Forms).

    Дополнительные сведения об особенностях заданий печати в Windows Forms, в том числе о способах создания заданий печати программными средствами, см. в разделе PrintPageEventArgs.

См. также

Ссылки

PrintDocument

Другие ресурсы

Поддержка печати в Windows Forms