. Стиллмен, Дж. Грин - Изучаем 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> доч<strong>е</strong>рних эл<strong>е</strong>м<strong>е</strong>нтов управл<strong>е</strong>ния<br />
О т р а б о т а в , э л <strong>е</strong> м <strong>е</strong> н ты у п р а в л <strong>е</strong> н и я д о л ж н ы в ы с в о б о ж д а ть р <strong>е</strong>сурсы .<br />
Н о э л <strong>е</strong> м <strong>е</strong> н т B e e C o n tr o l с о зд а <strong>е</strong> т э к з <strong>е</strong> м п л я р э л <strong>е</strong> м <strong>е</strong> н т а T im e r ... к о <br />
т о р ы й о с т а <strong>е</strong> т с я н <strong>е</strong> уд а л <strong>е</strong>н н ы м ! К с ч а с ть ю , э ту п р о б л <strong>е</strong> м у л <strong>е</strong> г к о р <strong>е</strong> <br />
ш и т ь — д о с т а т о ч н о п <strong>е</strong> р <strong>е</strong> к р ы т ь м <strong>е</strong> то д D is p o s e {).<br />
О<br />
К л а с с эл<strong>е</strong>м<strong>е</strong>нтов у п р а в <br />
л<strong>е</strong>ния р<strong>е</strong>ализу<strong>е</strong>т инт <strong>е</strong>рф<strong>е</strong>йс<br />
IDisposable, поэт о<br />
м у нужно просл<strong>е</strong>дить,<br />
чтобы вс<strong>е</strong> эл<strong>е</strong>м<strong>е</strong>нты<br />
удалялись, когда в них<br />
пропада<strong>е</strong>т надобность.<br />
П <strong>е</strong>р<strong>е</strong>кройт<strong>е</strong> м<strong>е</strong>тод bisposeO и удалит<strong>е</strong> тайм<strong>е</strong>р<br />
Н а ш кл а сс B e e C o n tr o l д о л ж <strong>е</strong> н о б л ад а ть у н а с л <strong>е</strong> д о в а н н ы м м <strong>е</strong> т о д о м D is p o s e ( ) . Д о с т а т о ч н о<br />
п <strong>е</strong> р <strong>е</strong> к р ы т ь и р а с ш и р и т ь э т о т м <strong>е</strong> то д . В в <strong>е</strong> д и т <strong>е</strong> в к о д кл а с с а к л ю ч <strong>е</strong> в о <strong>е</strong> слово o v e r r i d e :<br />
class BeeControl : PictureBox {<br />
o v e r r id e<br />
D1sfKee(booS disposing)<br />
r Dock {ge^ set;}<br />
DoybleBuffered {get; set;}<br />
i # Equals(object obj)<br />
^ Focused {get; }<br />
Font {get; set;}<br />
^ ForeCotor {ge^ set;}<br />
1% GetAccessibilityObjectByldOnt objectid)<br />
Посл<strong>е</strong> вв<strong>е</strong>д<strong>е</strong>ния ключ<strong>е</strong>вого<br />
слова override появит ся<br />
от о IntelliSense с «а<strong>е</strong>р<strong>е</strong>чк<br />
ю ы т и я м <strong>е</strong> т о д о в , в ы д <strong>е</strong> р и<br />
т <strong>е</strong> м <strong>е</strong>т од PisposeQ.<br />
И С Р в в <strong>е</strong> д <strong>е</strong> т с т р о ч к у b a s e . D is p o s e ( ) , к о т о р о й б уд<strong>е</strong>т вы зы в ать ся д а н н ы й м <strong>е</strong>то д :<br />
protected override void Dispose(bool disposing) {<br />
base.Dispose(disposing);<br />
}<br />
Код удал<strong>е</strong>ния тайм<strong>е</strong>ра<br />
Д о б а в ь т <strong>е</strong> в к о н <strong>е</strong> ц н о в о го м <strong>е</strong> т о д а D is p o s e () ко д , в ы зы в а ю щ и й м <strong>е</strong><br />
т о д a n im a tio n T im e r .D is p o s e О , к о гд а а р гу м <strong>е</strong> н т d i s p o s i n g и м <strong>е</strong> <br />
<strong>е</strong> т з н а ч <strong>е</strong> н и <strong>е</strong> tru e .<br />
protected override void Dispose(bool disposing) {<br />
base .Dispose (disposing) ; .<br />
^ Мы п<strong>е</strong>р<strong>е</strong>крыва<strong>е</strong>м n o-<br />
}<br />
i f (d is p o s in g ) {<br />
a n im a tio n T im e r .D isp o se О ;<br />
Т <strong>е</strong> п <strong>е</strong> р ь э л <strong>е</strong> м <strong>е</strong> н т B e e C o n tr o l у б и р а <strong>е</strong> т за с о б о й !<br />
м<strong>е</strong>ч<strong>е</strong>нный ключ<strong>е</strong>вым<br />
словом, protected м<strong>е</strong>тод<br />
DisposeQ, вызыва<strong>е</strong>мый<br />
р<strong>е</strong>ализаии<strong>е</strong>й м<strong>е</strong>тода<br />
IDisposable.DisposeQ эл<strong>е</strong>м<strong>е</strong>нта<br />
управл<strong>е</strong>ния.<br />
П р о в <strong>е</strong> р ь т <strong>е</strong> сам и . Добавьт<strong>е</strong> точку останова в в с т а в л <strong>е</strong> н н у ю с т р о ч к у<br />
и з а п у с т и т <strong>е</strong> п р о гр а м м у . П р и к а ж д о м у д а л <strong>е</strong> н и и э л <strong>е</strong> м <strong>е</strong> н т а B e e C o n tr o l<br />
и з к о л л <strong>е</strong> к ц и и C o n t r o l s буд<strong>е</strong>т вы зы в ать ся м <strong>е</strong> т о д D is p o s e ().<br />
Любой созданный<br />
вами<br />
эл<strong>е</strong>м<strong>е</strong>нт управл<strong>е</strong>ния<br />
долж<strong>е</strong>н<br />
удалять вс<strong>е</strong><br />
порожд<strong>е</strong>нны<strong>е</strong><br />
им эл<strong>е</strong>м<strong>е</strong>нты<br />
и други<strong>е</strong> допускаюпщ<strong>е</strong><br />
удал<strong>е</strong>ни<strong>е</strong><br />
объ<strong>е</strong>кты.<br />
Если вы собира<strong>е</strong>т<strong>е</strong>сь создавать свои эл<strong>е</strong>м<strong>е</strong>нты управл<strong>е</strong>ния, вам буд<strong>е</strong>т пол<strong>е</strong>зно<br />
прочитать мат<strong>е</strong>риалы с сайта ЬЦр://т5с1п.т1сг080Д.С0т/ги-ги/11Ьгагу/8У81<strong>е</strong>т.1а1вР05аЫ<strong>е</strong>.а15Р0$<strong>е</strong>.а50х<br />
д а л ь ш <strong>е</strong> > 587