. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
код формы<br />
Длинны<strong>е</strong><br />
упражн<strong>е</strong>ния<br />
О Это код дюрмы<br />
В в<strong>е</strong>дит<strong>е</strong> <strong>е</strong>го в И С Р .<br />
p u b l i c p a r t i a l c l a s s Form l : Form {<br />
p u b l i c F o r m l() {<br />
I n it i a l iz e C o m p o n e n t () ;<br />
}<br />
p r i v a t e Game gam e;<br />
Это <strong>е</strong>динств<strong>е</strong>нный класс, с которым<br />
взаимод<strong>е</strong>йству<strong>е</strong>т фо^>ма. Им<strong>е</strong>нно он<br />
управля<strong>е</strong>т вс<strong>е</strong>й игрои.<br />
Свойство<br />
B n a b le d<br />
Включа<strong>е</strong>т и<br />
о т к л ю ч а <strong>е</strong> т<br />
э л <strong>е</strong> м <strong>е</strong> н т ы<br />
у п р а в л <strong>е</strong> н и я<br />
ф орм ьь<br />
Этот м<strong>е</strong>тод<br />
очища<strong>е</strong>т т <strong>е</strong>кстово<strong>е</strong><br />
пол<strong>е</strong><br />
от пр<strong>е</strong>дыдущ<strong>е</strong>го<br />
списка и<br />
заполня<strong>е</strong>т <strong>е</strong>го<br />
набором карт<br />
для новой игры.<br />
p r i v a t e v o id buttonStart_Click(object se n d e r , E v en tA rg s e) {<br />
i f (S tr in g .I s N u llO r E m p t y ( t e x t N a m e .T e x t ) ){<br />
M e ssa g e B o x .S h o w (" P le a se e n t e r y o u r name<br />
r e tu r n ;<br />
"C an't s t a r t t h e game y e t" )<br />
}<br />
game new G a m e(tex tN a m e.T ex t, new L i s t < s t r i n g > { "Joe", "Bob" }, t e x t P r o g r e s s )<br />
A u t t o n S t a r t .E n a b l e d = f a l s e ;<br />
(te x tN a m e .E n a b le d = f a l s e ;<br />
b u tto n A s k .E n a b le d = t r u e ;<br />
U pdateForm O ;<br />
p r i v a t e v o i d UpdateFormO {<br />
l i s t H a n d . I t e m s . C l e a r ();<br />
f o r e a c h<br />
( S t r in g cardName i n g a m e.G etP la y erC a rd N a m es()<br />
lis tH a n d .I te m s .A d d (c a r d N a m e );<br />
t e x tB o o k s .T e x t = g a m e .D e s c r ib e B o o k s 0 ;<br />
t e x t P r o g r e s s .T e x t += g a m e .D e s c r ib e P la y e r H a n d s ( ) ;<br />
t e x t P r o g r e s s . S e l e c t i o n S t a r t = t e x t P r o g r e s s .T e x t .L e n g t h ;<br />
t e x t P r o g r e s s . S c r o ll T o C a r e t ( );<br />
p r i v a t e v o i d buttonAsk_Click(object se n d e r , E v en tA rg s e) {<br />
t e x t P r o g r e s s .T e x t = "";<br />
i f ( l is t H a n d .S e le c t e d l n d e x < 0) {<br />
}<br />
i f<br />
M e ssa g e B o x .S h o w (" P le a se s e l e c t a c a r d " );<br />
r e tu r n ;<br />
При начал<strong>е</strong> новой игры созда<strong>е</strong>тся экз<strong>е</strong>мпляр<br />
класса Game, становится доступной<br />
кнопка Ask, пропада<strong>е</strong>т достцп<br />
к кнопк<strong>е</strong> S ta rt Game, посл<strong>е</strong> ч<strong>е</strong>го форма<br />
п<strong>е</strong>р<strong>е</strong>рисовыва<strong>е</strong>тся.<br />
(g a m e .P la y O n e R o u n d ( lis t H a n d .S e le c t e d ln d e x ) ) {<br />
t e x t P r o g r e s s .T e x t += "The w in n er i s . . . + gam e. G etW innerNam e()<br />
t e x t B o o k s .T e x t = g a m e .D e s c r ib e B o o k s 0 ;<br />
b u tto n A s k .E n a b le d = rf a lis e ;<br />
e l s e<br />
A<br />
UpdateForm O ;<br />
Свойство SelectionStart<br />
и м<strong>е</strong>тод ScrollToCaretO<br />
позволяют прокручи -<br />
бать т<strong>е</strong>кст, <strong>е</strong>сли он н<strong>е</strong><br />
ум<strong>е</strong>ща<strong>е</strong>тся в т<strong>е</strong>кстово<strong>е</strong><br />
) пол<strong>е</strong>.<br />
Свойство SelectionStart<br />
опр<strong>е</strong>д<strong>е</strong>ля<strong>е</strong>т начало выо<strong>е</strong>л<strong>е</strong>нного<br />
фрагм<strong>е</strong>нта,<br />
посл<strong>е</strong> этого м<strong>е</strong>тод<br />
ScrollToCaretQ прокручива<strong>е</strong>т<br />
сод<strong>е</strong>ржимо<strong>е</strong> т <strong>е</strong>кстового<br />
поля до м<strong>е</strong>ста<br />
нахожд<strong>е</strong>ния курсора.<br />
Игрок выбира<strong>е</strong>т карту и щ<strong>е</strong>лка<strong>е</strong>т на кнопк<strong>е</strong><br />
Ask, чтобы узнать, <strong>е</strong>сть ли данная карта<br />
У кого-нибудь из соп<strong>е</strong>рников. Класс Game игра<strong>е</strong>т<br />
с помощью м<strong>е</strong>тода PlayOneRoundQ.<br />
380 глава 8