Objektumorientált programozás Pál László
Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás - Pál László
5. ELİADÁS Komponensek bemutatása Listák, menük
2
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
A ListBox (Listadoboz) komponens
Fontosabb tulajdonságok:
Példák (folyt.):
7
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
A ComboBox (Kombinált lista) komponens
Példa: elem hozzáadása egy Listbox vezérlıhöz
20
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
A fımenü (MenuStrip)
Fımenü szerkeszthetı ennek Items tulajdonságán keresztül is:
26
Objektumorientált programozás - Pál László
A fımenü (MenuStrip)
Az almenüpontokhoz utólag is lehet újakat beszúrni vagy törölni:
27
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
A ToolStripMenuItem objektum Checked: Enabled:
Boolean ("pipa")
Boolean (=Falseszürke)
Eseménye: OnClick
– menüpontra való kattintáskor keletkezik
29
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
A gyorsmenü (ContextMenuStrip)
Példa gyorsmenő létrehozására, hozzárendelésre
Tervezés
Hozzárendelés az őrlaphoz
Futtatás
31
Objektumorientált programozás - Pál László
Feladat - Kamatszámítás
32
Objektumorientált programozás - Pál László
Feladat - Kamatszámítás
33
Objektumorientált programozás - Pál László
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
Objektumorientált programozás - Pál László
Kérdések
Mi a lényege az öröklıdésnek?
Mik a tulajdonságok?
35