. Стиллмен, Дж. Грин - Изучаем 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