14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

эл<strong>е</strong>м<strong>е</strong>нты управл<strong>е</strong>ни<strong>е</strong> и графич<strong>е</strong>ски<strong>е</strong> фрагм<strong>е</strong>нты<br />

Окно пр<strong>е</strong>дварит<strong>е</strong>льного просмотра и окно диалога Print<br />

Добавл<strong>е</strong>ни<strong>е</strong> окна пр<strong>е</strong>дварит<strong>е</strong>льного просмотра или окна диалога Print напомина<strong>е</strong>т<br />

проц<strong>е</strong>дуру добавл<strong>е</strong>ния окон диалога O pen и Save. Вам нужно создать<br />

объ<strong>е</strong>кт P r i n t D i a l o g или P r i n t P r e v i e w D i a l o g , присвоить <strong>е</strong>го свойству<br />

D o c u m e n t ваш объ<strong>е</strong>кт D o c u m e n t и вызвать м<strong>е</strong>тод S h o w (). Докум<strong>е</strong>нт на п<strong>е</strong>чать<br />

отправит окно диалога, вам н<strong>е</strong> потр<strong>е</strong>бу<strong>е</strong>тся вызывать м<strong>е</strong>тод P r i n t ().<br />

Добавим <strong>е</strong>го к кнопк<strong>е</strong>, созданной вами на шаг<strong>е</strong> 1;<br />

p r i v a t e v o i d b u t t o n l _ C l i c k ( o b j e c t s e n d e r , E v e n t A r g s e ) {<br />

^ P r in t D o c u m e n t d o c u m e n t = n e w P r i n t D o c u m e n t ( ) ;<br />

^ d o c u m e n t . P r i n t P a g e += n e w P r i n t P a g e E v e n t H a n d l e r ( d o c u m e n t _ P r i n t P a g e ) ;<br />

P r i n t P r e v i e w D i a l o g p r e v i e w = n e w P r i n t P r e v i e w D i a l o g ( ) ;<br />

p r e v i e w . D o c u m e n t = d o c u m e n t;<br />

p r e v i e w . S h o w D i a l o g ( t h i s ) ;<br />

При наличии объ<strong>е</strong>кта<br />

P rintD ocum ent и соотв<strong>е</strong>.тст6уюш,<strong>е</strong>го<br />

обработчика событии<br />

для вызова окна пр<strong>е</strong>дварит<strong>е</strong>льного<br />

просмотра<br />

достаточно<br />

создать объ<strong>е</strong>кт<br />

PrintPreviewDialog.<br />

v o i d d o c u m e n t P r i n t P a g e ( o b j e c t s e n d e r ,<br />

~ P r in t P a g e E v e n t A r g s e ) {<br />

D r a w B e e ( <strong>е</strong> . G r a p h i c s , n e w R e c t a n g l e (О, О, 300, 300)<br />

^ Мы воспользу<strong>е</strong>мся уж<strong>е</strong> написанным<br />

м<strong>е</strong>тодом DrawBeeQ.<br />

П<strong>е</strong>чать многостраничного докум<strong>е</strong>нта<br />

Чтобы расп<strong>е</strong>чатать н<strong>е</strong>сколько страниц, нужно присвоить<br />

свойству e . H a s M o r e P a g e s обработчика событий<br />

P r i n t P a g e знач<strong>е</strong>ни<strong>е</strong> true. В р<strong>е</strong>зультат<strong>е</strong> объ<strong>е</strong>кт D o c u m e n t<br />

узна<strong>е</strong>т о дополнит<strong>е</strong>льных страницах. Обработчик событий<br />

буд<strong>е</strong>т вызываться снова и снова, до т<strong>е</strong>х пор пока он присваива<strong>е</strong>т<br />

свойству <strong>е</strong> .H a s M o r e P a g e s знач<strong>е</strong>ни<strong>е</strong> true. Отр<strong>е</strong>дактиру<strong>е</strong>м<br />

<strong>е</strong>го таким образом, чтобы расп<strong>е</strong>чатать дв<strong>е</strong> страницы:<br />

b o o l f i r s t P a g e = t r u e ;<br />

v o i d d o c u m e n t _ P r i n t P a g e ( o b j e c t s e n d e r , P r in t P a g e E v e n t A r g s e ) {<br />

©<br />

D r a w B e e ( e . G r a p h i c s , n e w R e c t a n g l e ( 0 , 0 , 300, 30 0));<br />

u s i n g ( F o n t f o n t = n e w F o n t ( " A r i a l " , 3 6 , F o n t S t y l e . B o l d ) ) {<br />

i f ( f i r s t P a g e ) {<br />

e . G r a p h i c s . D r a w s t r i n g ( " П <strong>е</strong> р в а я с т р а н и ц а " . F o n t , B r u s h e s . B l a c k , 0 , 0 ) ;<br />

e .H a sM o r e P a g e s = t r u e ; присвоить свойству e.HasMorePages знач<strong>е</strong>ни<strong>е</strong> true.<br />

f i r s t P a g e = f a l s e ;<br />

D ocum ent снова вызов<strong>е</strong>т обработчик событий<br />

} e l s e { и отправит на п<strong>е</strong>чать сл<strong>е</strong>дующую страницу.<br />

<strong>е</strong> . G r a p h i c s . D r a w s t r i n g ( " В т о р а я с т р а н и ц а " . F o n t , B r u s h e s . B l a c k , О, 0 ) ;<br />

f i r s t P a g e = t r u e ;<br />

Запчстит<strong>е</strong> программу и уб<strong>е</strong>дит<strong>е</strong>сь.<br />

, ^ чило в окн<strong>е</strong> пр<strong>е</strong>дварит<strong>е</strong>льного<br />

J ^ ■ просмотра появляются дв<strong>е</strong> страницы.<br />

дальш<strong>е</strong> > 625

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!