Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015
5. ELİADÁS Komponensek bemutatása Listák, menük 2
A ListBox (Listadoboz) komponens - Leírás, szerep: megjelenít egy elemlistát, amelybıl egyet (esetleg többet) kiválaszthatunk, majd feldolgozhatunk. Az egyszerőbb esetekben az elemek csak szöveget tartalmaznak (sztringlista), de az igényesebb megoldásokban már grafika is szerepel (grafikus lista). A lista elemei begépeléssel nem szerkeszthetık, csak kiválaszthatók 3
A ListBox (Listadoboz) komponens - A listadoboz mint választókomponens, kis helyen (gördíthetı módon) kínálja fel a választási lehetıségeket, másrészt futásidıben viszonylag egyszerően megoldható a lista karbantartása. 4
A ListBox (Listadoboz) komponens - Fontosabb tulajdonságok: Items: a listaelemek tömbje Névtér: System.Windows.Forms Típus: System.Windows.Forms.ListBox.ObjectCollection Szerkeszthetı tervezés- és futási idıben is Futási idıben egy lista-szerkesztı ablakot használunk, amit az Items tulajdonságnál lehet aktiválni az objektum felügyelıben 5
A ListBox (Listadoboz) komponens - Fontosabb tulajdonságok: Items (folyt.): futás idıben a listát az Items metódusaival tudjuk kezelni Add: elem hozzáadása a lista végére Clear: a lista teljes tartalmának a törlése Insert: elem beszúrása a lista egy pozíciójára Remove: egy adott elem törlése RemoveAt: egy adott pozíciójú elem törlése Count: a lista elemeinek számát adja vissza Példa: 6
A ListBox (Listadoboz) komponens - Fontosabb tulajdonságok: Példák (folyt.): 7
A ListBox (Listadoboz) komponens - Fontosabb tulajdonságok: SelectedIndex: a kiválasztott elem sorszáma. Típusa: egész szám. A sorszámozás 0-val kezdıdik. Értéke -1, ha nincs kiválasztott elem SelectedItem: a kiválasztott elem. Típusa: objektum Text: a kijelölt elem szövegére lehet rákeresni, vagy lekérni a kijelölt elemet. Típusa: string SelectionMode: a kijelölés módja. Alapértelmezetten egy elem választható. Lehetséges értékei: One, MultiSimple, MultiExtended. SelectedIndices: a kiválasztott elemek sorszámai SelectedItems: a kiválasztott elemek tömbje TopIndex: a legelsı látható elem sorszámát lehet beállítani vagy lekérni 8
A ListBox (Listadoboz) komponens - Fontosabb tulajdonságok: Példa: a Listbox1 kiválasztott elemeit átmásoljuk a Listbox2 listába Példa: a TopIndex megváltoztatása 9
A ListBox (Listadoboz) komponens - Fontosabb tulajdonságok: Sorted: a lista rendezettségét ( ábécé szerinti) lehet szabályozni. Alapértelmezett értéke: False. Ha a lista rendezett akkor új elem hozzáadása után az új elem automatikusan a helyére kerül, tehát a lista továbbra is rendezett marad MultiColumn: true értékre állítva, ha a lista nem fér el egy oszlopban, akkor több oszlopra rendezıdik át 10
A ListBox (Listadoboz) komponens - Fontosabb metódusok: GetSelected: true értéket ad vissza, ha az adott sorszámú elem ki van jelölve SetSelected: kijelöl vagy megszünteti a kijelölést egy elem esetén ClearSelected: megszünteti a kijelölést Példa: invertáltjuk a kijelölést. A nem kijelölt elemek lesznek kijelölve 11
A ListBox (Listadoboz) komponens - Fontosabb metódusok: FindString: egy adott szövegre keres rá és visszaadja annak sorszámát Példa: egy adott szövegre keresünk rá. Ha megtaláljuk akkor ki is jelöljük 12
A ListBox (Listadoboz) komponens - Fontosabb események: SelectedIndexChanged: bekövetkezik, ha a SelectedIndex tulajdonság változik (alapértelmezett esemény) OnClick: a listára való kattintáskor következik be A fenti két esemény bekövetkezik Egyválasztós esetben: balegérrel, valamelyik elemre történı rákattintással a kurzorvezérlık (kurzornyilak, Home, End, PgUp, PgDn) használatakor Többválasztós esetben a felsoroltakon kívül akkor is, ha a Shift, Ctrl billentyőt használjuk egy elemen 13
A ComboBox (Kombinált lista) komponens - Leírás, szerep: egy szerkesztı-kiválasztó komponens, amely TextBox szerkesztımezı és a ListBox listadoboz egyféle kombinációja A kombinált lista, a szerkesztıablakban történı szerkesztéssel, vagy a legördülı listából történı kiválasztással, elsısorban szöveges adat elıállítására alkalmas 14
A ComboBox (Kombinált lista) komponens - Állandó jelleggel a komponensbıl csak egy nyitógombbal bıvített edit-ablak látható. Így sokkal kisebb területet takar a szülıkomponensen, mint a ListBox listadoboz. Állandóan csak a kiválasztott (esetleg szerkesztett) tétel látható. A megnyitott listából egyválasztós technikával választhatunk, a listában kijelölt tétel, azonnal megjelenik a szerkesztıablakban. 15
A ComboBox (Kombinált lista) komponens - Fontosabb tulajdonságok: Items: a kapcsolt-lista inicializálására, a listaelemek kezdıértékének megadására használjuk (lásd ListBox) Text: A kombinált lista elsıdleges kimeneti adata, az edit-ablak aktuális tartalma. Amennyiben valamelyik listaelem a Text (azaz kiválasztjuk a listából) és átszerkesztjük, nincs visszahatása a listaelemre. Szerkesztéskor automatikus keresést hajt végre a listában. DropDownHeight: szabályozhatjuk, a lenyíló doboz magasságát. Mérete pixelben van megadva DropDownWidth: szabályozhatjuk, a lenyíló doboz szélességét. Mérete pixelben van megadva 16
A ComboBox (Kombinált lista) komponens - Fontosabb tulajdonságok: AutoCompleteMode: a szöveg kitöltési módjára utal. Lehetséges értékei: None, Suggest, Append, SuggestAppend. AutoCompleteSource: az automatikus kitöltés forrása. Lehetséges értékei: ListItems, FileSystem, stb. Suggest Append SuggestAppend 17
A ComboBox (Kombinált lista) komponens - Fontosabb tulajdonságok: DropDownStyle: itt állíthatjuk be a kombinált lista stílusát. Fontosabb lehetıségek: DropDown: alapértelmezett. A Text szerkeszthetı, a lista nyitható DropDownList: az edit-ablaknak csak passzív megjelenítı funkciója van, a lista kiválasztott elemét mutatja, a Text nem szerkeszthetı Simple: a Text szerkeszthetı, de az edit-ablakon nincs nyitógomb. Ha nem növeljük meg a vezérlı magasságát, a lista rejtve marad 18
A ComboBox (Kombinált lista) komponens - Fontosabb tulajdonságok: A SelectedIndex, SelectedItem, Sorted tulajdonságok hasonlóan használhatóak, mint a Listbox esetén Példa: elem hozzáadás, de csak akkor, ha még nincs a listában 19
A ComboBox (Kombinált lista) komponens - Példa: elem hozzáadása egy Listbox vezérlıhöz 20
A ComboBox (Kombinált lista) komponens - Fontosabb események SelectedIndexChanged: bekövetkezik, ha a SelectedIndex tulajdonság változik (alapértelmezett esemény) TextChanged: bekövetkezik, ha a Text tulajdonság változik OnClick: a listára való kattintáskor következik be 21
Menük készítése és kezelése Az összetettebb feladatok megoldásához általában, már fımenüre van szükség. A legtöbb windows-os alkalmazás menüket használ a program különbözı részfeladatainak végrehajtásához. Egy összetett alkalmazás menürendszere, lehetıvé teszi, hogy ne egy zsúfolt gombcsoport jelenjen meg, hanem az alkalmazás funkcióit logikus csoportosításban menüben kínáljuk fel a felhasználónak 22
Menük készítése és kezelése Az alkalmazásainkban a menüknek két típusát különböztetjük meg: A fımenü-nek (MenuStrip) nevezett globális, hierarchikus menürendszer az alkalmazás fı őrlapján, a címsor alatt helyezkedik el, általában vízszintes sormenüvel jelentkezik A jobb egérgombbal hívható ún. gyorsmenü ( MenuStripStrip), amely a komponensekhez kötıdik. Felugró menünek is szokás nevezni. 23
A fımenü (MenuStrip) - A fımenük két szintbıl állnak: az őrlap síkjába simuló sormenübıl és az egyes sormenü-pontoknak megfelelı legördülı menükbıl A legördülı menük már tartalmazhatnak parancs menüpontokat, sıt egy-egy menüpontból almenü is nyílhat 24
A fımenü (MenuStrip) - Fımenü szerkesztése: Egy fımenü vezérlıt kell helyezni az őrlapra, majd a megjelenı szerkesztıben egyszerően be kell írni a menü elemeket 25
A fımenü (MenuStrip) - Fımenü szerkeszthetı ennek Items tulajdonságán keresztül is: 26
A fımenü (MenuStrip) - Az almenüpontokhoz utólag is lehet újakat beszúrni vagy törölni: 27
A ToolStripMenuItem objektum Tartalmazza egy menüpont tulajdonságait, metódusait és eseményeit Jellemzıi: Text: String - Forróbillentyő: &File File - Menüszeparátor: Text = - ShortcutKeys: gyorskulcs hozzárendelés (pld. Ctrl+A) DropDownItems[X: Integer]: ToolStripMenuItem (az almenüpontok) Count: Integer (almenüpontok száma) 28
A ToolStripMenuItem objektum Checked: Boolean ("pipa") Enabled: Boolean (=False szürke) Eseménye: OnClick menüpontra való kattintáskor keletkezik 29
A gyorsmenü (ContextMenuStrip) - Egyéb komponensek ContextMenuStrip tulajdonságához kötjük Vizuális tervezéssel jön létre Hasonló tulajdonságokkal és metódusokkal rendelkezik, mint a MenuStrip komponens 30
A gyorsmenü (ContextMenuStrip) - Példa gyorsmenő létrehozására, hozzárendelésre Tervezés Hozzárendelés az őrlaphoz Futtatás 31
Feladat - Kamatszámítás 32
Feladat - Kamatszámítás 33
Kérdések Mi a különbség a Console és a Windows típusú alkalmazások között? Jellemezzük az objektumot? Hogyan hozzuk létre VB.NET-ben? 34
Kérdések Mi a lényege az öröklıdésnek? Mik a tulajdonságok? 35