Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 191

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 185 186 187 188 189 190 < 191 > 192 193 194 195 196 197 .. 404 >> Следующая


После завершения печати последней страницы Printcontroller вызывает метод onEndprint о класса PrintDocument. Существует дополнительная возможность реализовать обработчик, вызываемый в данный момент.

Наиболее важную информацию можно сформулировать следующим образом:

Можно реализовать код, ответственный за вывод на печать, В обработчике событий PriatDoeuueiit. Priatvsi6.

Он будет вызываться для каждой страницы, подлежащей выводу на печать. Если необходимо использовать код, который будет вызываться только один раз, то для этого требуется реализовать обработчики событий B«ginPrint И BndPrint.

Событие PrintPage

Необходимо реализовать обработчик событий для события PrintPage, аргументы которого описываются делегатом PrintPageEventHandler;

public delegate void PrintPageEventHandler(object sender.

PrintPageEventArgs e);

Мы получаем объект типа PrintPageEventArgs. На диаграмме классов можно увидеть основные свойства этого класса, у которого имеются отношения с классами PageSettings и Graphics; причем первый из них позволяет задавать размеры листа бумаги, поля и получать информацию об используемом принтере. Класс Graphics предоставляет возможность непосредственного доступа к устройству, он позволяет посылать принтеру строки, а также прямые и кривые линии.

GDI расшифровывается как Graphics Device Interface (интерфейс графического устройства) и предоставляет определенные возможности для вывода графической информации на такие устройства, как экран или принтер.

GDH-----это следующее поколение GDi, в котором

реализованы такие возможности, как плавно изменяющие свой градиент кисти и эффекты, связанные с затемнением.

Более подробную информацию о выводе графической информации С ПОМОЩЬЮ GDI+ U класса Graphics можно почерпнуть из главы !6.

Поработав со следующим примером вы сможете убедиться, что включение в приложение возможностей, связанных с выводом на печать,— очень простая задача.
Использование диалоговых окон

409

Практикум: добавление в меню вхождения Print

Название пункта меню Текст
miFilePrint &Print...
miFilePrintPreview Print Pre&view...
miFi1ePageSetup Page Set&up...
miFileExit E&xit

В таблице перечислены свойства Name и Text новых пунктов меню.

На рисунке справа показано, как такое меню должно выглядеть.

Перед тем, как добавлять диалог PrintDialog, нам необходимо включить в меню некоторые вхождения, предназначенные для вывода на печать. Добавьте два разделителя н следующие пункты меню: Print, Print Preview, Page Setup н Exit.

. jJoJjSi
li'Mibi*Mi-, i1
J



fcre...


Zi.'
f .

Практикум: добавление номпонента PrintDocumentw обработчика

1. Перенесите компонент PrintDocument из окна с инструментами и поместите его в форму. 'Замените имя на printDocument И добавьте обработчик событий OnPrintPaae () В событие PrintPage, выбрав кнопку Events в окне Properties. Теперь введите код следующей реализации обработчика событий:

private void OnPrintPage(object sender,

System.Drawing.Printing.PrintPageEventArgs e)

(

char И param ¦

string!) lines * textBoxEdit.Text,Split(param); int i a 0;

chart] trimParam = ('\r'J; foreach (string a in lines)

(

lines[i++J = 8.TrimErd(trimParam);

)

int x - 20; int у ” 20;

Coreach (string line in lines)

(

e.Graphics.Drawstring(line, new Font('Arial*, 10),

Brushes.Black:, x, y) i

У += 15j

>

2. Добавьте обработчик событий в событие click меню Print, который будет вызывать метод Print о класса PrintDocument:

private void miFileprint_CIick(object sender,

System.EventArgs e)

{ .... _ printDocument.Print();

)
410

Глава 15

3. Теперь можно построить и запустить приложение, которое позволит отпечатать какой-либо документ, Для того чтобы это приложение могло работать, необходимо наличие какого-либо инсталлированного принтера.

Как это работает

Метод Print () объекта printDocument ПЫЗЫВаеТ наступление события PrintPage С ПОМОЩЬЮ класса Printcontroller:

PrintDocument.Print()г

В обработчике OnPrintPageO мы последовательно разбиваем текст, находящийся в текстовом окне, на отдельные строки посредством метода string, split о и символа новой строки \п. Получающиеся в результате этого строки заносятся в переменную lines:

private void OnPrintPage(object sender,

System.Drawing,Printing.PrintPageEventArgs e)

t

chard paxam = ('\n');

stringd lines * textBoxEdit,Text.Split(param)i

В зависимости от того, каким образом создавался текстовый файл, строки могут отделяться одна от другой не только символом \п, но н символом Sr. С помощью метода TrimEndi) символ \г удаляется нз каждой строки:

int i * 0;

chax[] trimparem ¦= {'\r'))

Coreach (string line In lines)

(

lines[i++I ¦ a.Trim?nd<trimParam);

)

Во втором операторе foreach в коде, приведенном ниже, можно увидеть, что мы проходим по всем строкам и отправляем каждую из них на принтер, обращаясь К методу е.Graphics.DrawString() . е — ЭТО переменная типа PrintPageEventArgs, у которой свойство Graphics привязано к контексту принтера. Контекст принтера позволяет выводить рисунки на печатающем устройстве, а класс Graphics обладает определенными методами, позволяющими рисовать с помощью этого контекста,
Предыдущая << 1 .. 185 186 187 188 189 190 < 191 > 192 193 194 195 196 197 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.