14.02.2017 Views

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

возд<strong>е</strong>йству<strong>е</strong>т как на<br />

об<strong>е</strong> формы, так и на вс<strong>е</strong> объ<strong>е</strong>кты<br />

постро<strong>е</strong>нны<strong>е</strong> вами в пр<strong>е</strong>дыдущ<strong>е</strong>й '<br />

глаб<strong>е</strong> для симулятора.<br />

О б ъ <strong>е</strong> к т ^<br />

П ч <strong>е</strong>л ы и цв<strong>е</strong>ты знаю т сво<strong>е</strong> м<strong>е</strong>сто<br />

Класс P o i n t хранит информацию о полож<strong>е</strong>нии цв<strong>е</strong>тов и пч<strong>е</strong>л. Для любого объ<strong>е</strong>кта В <strong>е</strong> <strong>е</strong><br />

можно л<strong>е</strong>гко посмотр<strong>е</strong>ть B e e C o n t r o l и задать полож<strong>е</strong>ни<strong>е</strong>.<br />

b e e C o n t r o l = b e e L o o k u p [ b e e ] ;<br />

b e e C o n t r o l . L o c a t i o n = b e e . L o c a t i o n ;<br />

Мы мож<strong>е</strong>м увид<strong>е</strong>ть эл<strong>е</strong>м<strong>е</strong>нт цправл<strong>е</strong>ния<br />

для любой пч<strong>е</strong>лы и любого<br />

цб<strong>е</strong>тка. Посл<strong>е</strong> ч<strong>е</strong>го полож<strong>е</strong>ни<strong>е</strong> эл<strong>е</strong>-<br />

Визуализатор добавля<strong>е</strong>т эл<strong>е</strong>м<strong>е</strong>нты управл<strong>е</strong>ния новым пч<strong>е</strong>лам<br />

Если м<strong>е</strong>тод словаря C o n t a i n s K e y О для выд<strong>е</strong>л<strong>е</strong>нного объ<strong>е</strong>кта В <strong>е</strong> <strong>е</strong> возвраща<strong>е</strong>т знач<strong>е</strong>ни<strong>е</strong><br />

false, значит, для данной пч<strong>е</strong>лы отсутству<strong>е</strong>т эл<strong>е</strong>м<strong>е</strong>нт управл<strong>е</strong>ния. Класс R e n d e r e r долж<strong>е</strong>н<br />

создать B e e C o n t r o l и добавить <strong>е</strong>го в словарь, зат<strong>е</strong>м на форму (Н<strong>е</strong> забудьт<strong>е</strong> вызвать<br />

м<strong>е</strong>тод B r i n g T o F r o n t () (Пом<strong>е</strong>стить вп<strong>е</strong>р<strong>е</strong>д) эл<strong>е</strong>м<strong>е</strong>нта управл<strong>е</strong>ния, чтобы пч<strong>е</strong>ла н<strong>е</strong> оказалась<br />

закрыта цв<strong>е</strong>тами.)<br />

i f { ib e e L o o k u p . C o n t a i n s K e y ( b e e ) ) {<br />

b e e C o n t r o l = n e w B e e C o n t r o l 0 { W i d t h = 4 0 , H e i g h t = 4 0 } ;<br />

b e e L o o k u p . A d d ( b e e , b e e C o n t r o l ) ;<br />

h i v e F o r m . C o n t r o l s . A d d ( b e e C o n t r o l ) ;<br />

} e l s e<br />

b e e C o n t r o l . B r i n g T o F r o n t ( ) ;<br />

b e e C o n t r o l = b e e L o o k u p [ b e e ] ;<br />

М<strong>е</strong>тод СопЬа1п5К<strong>е</strong>у() показыва<strong>е</strong>т<br />

наличи<strong>е</strong> пч<strong>е</strong>лы в словар<strong>е</strong>. Если<br />

она там отсутству<strong>е</strong>т, значит,<br />

<strong>е</strong><strong>е</strong> нужно добавить вм<strong>е</strong>ст<strong>е</strong> с <strong>е</strong><strong>е</strong><br />

эл<strong>е</strong>м<strong>е</strong>нтом управл<strong>е</strong>ния.<br />

Помнит<strong>е</strong>, что в кач<strong>е</strong>ств<strong>е</strong> ключа словари могут использовать<br />

что угодно? В данном случа<strong>е</strong> ключом выступа<strong>е</strong>т<br />

объ<strong>е</strong>кт В<strong>е</strong><strong>е</strong>. Визуализатору нужно знать, какой эл<strong>е</strong>м<strong>е</strong>нт<br />

BeeControl на форм<strong>е</strong> соотв<strong>е</strong>тству<strong>е</strong>т той или иной пч<strong>е</strong>л<strong>е</strong>.<br />

Поэтому он находит пч<strong>е</strong>лу в словар<strong>е</strong>, опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>т <strong>е</strong><strong>е</strong><br />

эл<strong>е</strong>м<strong>е</strong>нт управл<strong>е</strong>ния и таким образом получа<strong>е</strong>т возможность<br />

п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>щать <strong>е</strong><strong>е</strong> по форм<strong>е</strong>.<br />

М <strong>е</strong>тод BringToFrontO гаран т и ру<strong>е</strong>т .<br />

J.H , ^гррда бидцт появляться<br />

. «А»<br />

ф <strong>е</strong> р т Him э т о т “ 7<br />

ба<strong>е</strong>т появл<strong>е</strong>ни<strong>е</strong> пч<strong>е</strong>л пов<strong>е</strong>рх фона.<br />

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

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

Saved successfully!

Ooh no, something went wrong!