HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Form-ok újrahasznosítása


Példaprogram letöltése

12951 bájt

Képzeljük el a következő feladatot: adott egy olyan alkalmazás, melyben sok-sok Form-ot kell használnunk. Ezek között adott egy olyan csoport, melyben majdnem mindegyik Form teljesen egyforma, csak egy-két apró eltérés található közöttük. Ezt leszámítva, mind kinézetben, mind funkciókban megegyeznek. Ekkor igen fáradságos lenne minden Form-ot külön-külön elkészíteni, hiszen ezek nagyban megegyeznek. Célszerűbb megoldás az, amit az osztályok öröklődésénél már tapasztalhattunk: készítsünk egy Form-ot melyen adott minden ami közös az összes Form-ban, majd ebből származtassunk új Form-okat és egészítsük ki igény szerint.

Mellékelt példában három Form-ot készítünk: a Form1-en két nyomógombot helyezünk el, melyekkel megjeleníthetjük a From2-t és Form3-at. A Form2 lesz az őse a Form3-nak, így ami a Form2-n megtalálható az öröklődik a Form3-ra is.
Ahhoz, hogy egy Form-ot egy másikból származtassunk, először is szükségünk van az ős Form létrehozására. Ha ez megtörtént, akkor válasszuk Project - Add inherited Form menüpontot.
A megjelenő ablakban az Inherited Form lesz a kijelölt elem, így kattintsunk az Open gombra.


Ekkor ismét egy ablak jelenik meg, melyben egy listát kapunk. Ebben a listában az alkalmazásunkban lévő Form-ok lesznek felsorolva. Most ezek közül kell kiválasztanunk azt, amelyikből szeretnénk egy újat származtatni. Az OK gomb lenyomásakor létrejön egy új Form, mely tartalmazza mindazt, amely már az ős Form-on megtalálható.


A mellékelt példában a Form2-n elhelyeztünk egy Button, CheckBox és TextBox kontrol-t, melyhez az egyszerűség kedvéért kódot nem rendeltünk. Amikor a Form2-ből leszármaztatjuk a Form3-at, akkor ezek a kontrolok a Form3-on rögtön megtalálhatók lesznek, így oda már csak azt kell felvennünk, amire ott szükségünk van.


A leszármazott Form-on az ős Form kontroljainak tulajdonságát nem tudjuk megváltoztatni, azok csak olvashatóként működnek. Ha mégis változtatásra lenne szükségünk, akkor vissza kell térnünk az ős Form-hoz és ott elvégezni azt. Ekkor az összes leszármazott Form módosulni fog. Igaz ez arra az esetre is, ha bővítjük a későbbiek folyamán az ős Form-ot, mert egy olyan új funkcióra van szükségünk, melynek meg kell jelennie minden leszármazott Form-on is.


A Form2-re elhelyezünk még egy Label-t, melynek az lesz a funkciója, hogy jelezze azt, hogy melyik Form lett felhasználva. Így ennek felirata hol Form2, hol Form3-ra kell hogy változzon. Mivel a Label a Form2-n van, így csak ezen belül férhetünk hozzá. Emiatt létrehozunk egy property-t ShowName névvel, mely megvalósítja azt, hogy a Label Text property-jének értéket adhassunk.
    protected string ShowName
    {
      set
      {
        label1.Text = value;
      }
    }
Így már csak annyi a teendőnk, hogy a Form2 konstruktorában értékül adjuk neki az adott példány nevét.
    public Form2()
    {
      ShowName = this.Name;
    }
Ugyanez a teendőnk a Form3 konstruktoránál is. Mivel a ShowName property is öröklődött, így ezt gond nélkül megtehetjük.
    public Form3()
    {
      ShowName = this.Name;
    }
Ezzel a módszerrel elértük azt, hogy egy olyan objektumnak a tulajdonságát befolyásoltuk egy leszármaztatott osztályban, mely az ős osztályhoz tartozik.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 143. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |