C# 6 - a Gyakorlat Windows Form alkalmazások

Hasonló dokumentumok
Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Johanyák Zsolt Csaba: Grafikus felület programozása. Copyright 2008 Johanyák Zsolt Csaba

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

BME MOGI Gépészeti informatika 6.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 8. előadás

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

BME MOGI Gépészeti informatika 1.

Programozási technológia

Grafikus felhasználói felület (GUI) létrehozása A GUI jelentése Egy egyszerű GUI mintaalkalmazás létrehozása

Java Programozás 5. Gy: Java alapok. Adatkezelő 1.rész

HVK Adminisztrátori használati útmutató

Swing GUI készítése NetBeans IDE segítségével

BME MOGI Gépészeti informatika 4.

Táblázatkezelés 2. - Adatbevitel, szerkesztés, formázás ADATBEVITEL. a., Begépelés

BME MOGI Gépészeti informatika 13.

XML Webszolgáltatás alapú osztott alkalmazás fejlesztése Johanyák Zsolt Csaba 1

C#---Access adatbáziskezelési gyakorlat

BME MOGI Gépészeti informatika 7.

Gyakorló 9. feladat megoldási útmutató

cím létrehozása

Vizuális, eseményvezérelt programozás I.

1. Regisztráció. Kedves Jelentkező!

Programozás 2., II. kötet Windows form alkalmazások

components : IContainer dx : int dy : int tmidőzítő : Timer toolstripseparator1 : ToolStripSeparator tsmikilépés : ToolStripMenuItem

Szabadkai Műszaki Szakfőiskola. Web programozás. dr Zlatko Čović

Első belépés az Office 365 rendszerbe

GenerikusOsztály<objektumtípus> objektum = new GenerikusOsztály<objektumtípus>();

Johanyák Zsolt Csaba: Képnézegető program oktatási segédlet

Sorosítás (szerializáció) és helyreállítás. 1. Bináris sorosítás és helyreállítás Szükséges névterek Attribútumok. 1.3.

SZE INFORMATIKAI KÉZÉS 1

Tájékoztató. Használható segédeszköz: -

Új adatbázis létrehozása

1. DVNAV letöltése és telepítése

BME MOGI Gépészeti informatika 5.

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click Dim tipp As Integer

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Duál Reklám weboldal Adminisztrátor kézikönyv

ReszlAd fájl, kitöltési útmutató:

A számítógép beállításainak megváltoztatása

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

BME MOGI Gépészeti informatika 2.

Regisztrálási útmutató

Hozzunk létre két rekordot a táblában, majd véglegesítsünk (commit):

Segítség a megoldáshoz: 1. Készítse el a Window-t az ábrának és az osztálydiagramnak megfelelően.

ÉRETTSÉGI MÁSODIK GYAKORLAT ELINDULÁS A PAPÍRMÉRET ÉS A MARGÓK BEÁLLÍTÁSA. ÜZLETI INFORMATIKAI ESZKÖZÖK Kiadványszerkesztés

Jelentkezési lap képző szervek részére

1. feladat. Szabóné Nacsa Rozália

M-Fájlok létrehozása MATLAB-ban

Alapok: Használd számológép helyett

7. Előadás. Makrók alkalmazása. Salamon Júlia. Előadás I. éves mérnök hallgatók számára

PÉNZTÁR FELHASZNÁLÓI KÉZIKÖNYV

Szöveges műveletek. Mielőtt nekikezdenénk első szövegünk bevitelének, tanuljunk meg néhány alapvető műveletet a 2003-as verzió segítségével:

E-Freight beállítási segédlet

Egyszerűbb a Google keresőbe beírni a Sharepoint Designer 2007 letöltés kulcsszavakat és az első találat erre a címre mutat.

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Az importálás folyamata Felhasználói dokumentáció verzió 2.1.

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Eseményvezérelt alkalmazások

Novell és Windows7 bejelentkezési jelszavak módosítása

A Windows az összetartozó adatokat (fájlokat) mappákban (könyvtárakban) tárolja. A mappák egymásba ágyazottak.

Visual Studio 2015 Express for Windows Desktop Első lépések

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

Weblap készítése. Fapados módszer

Lapműveletek. Indítsuk el az Excel programot és töröljük ki a Munka1 nevű munkalapot!

BASH SCRIPT SHELL JEGYZETEK

az adatbevitel szabályozása, alapok

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

MEH-EIA felhasználói dokumentáció gyakran ismételt kérdések

ClicXoft programtálca Leírás

A 35/2016. (VIII. 31.) NFM rendelet szakmai és vizsgakövetelménye alapján.

3. modul - Szövegszerkesztés

Ugráló gomb oktatási segédlet Ugráló gomb

Ablakok. Fájl- és mappaműveletek. Paint

Készlet nyilvántartó

Mappák megosztása a GroupWise-ban

CareLink Personal telepítési útmutató. Első lépések a CareLink Personal adatfeltöltéshez

BME MOGI Gépészeti informatika 14.

2005_01/1 Leírtunk egymás mellé hét racionális számot úgy, hogy a két szélső kivételével mindegyik eggyel nagyobb a két szomszédja szorzatánál.

Több oldalas dokumentum készítése. MS Word 2010 szövegszerkesztővel

Aranykor Önkéntes Nyugdíjpénztár Partner Portál

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Aromo Szöveges értékelés normál tantárggyal

VÁLTOZÁSOK AZ ÉTDR MŰKÖDÉSÉBEN

TÁJÉKOZTATÓ az OTH Szakrendszeri Információs Rendszerbe (OSZIR) történő regisztráció és belépés menetéről belföldi partner nevében


Access adatbázis elérése OLE DB-n keresztül

Ez a Pixteller nyitó oldala. Itt atalálod a regisztrációs felületet, illetve, ha az már megvan, akkor a bejelentkezést >> > Login

Tájékoztató. Használható segédeszköz: -

A Paint program használata

VARIO Face 2.0 Felhasználói kézikönyv

Felhasználói kézikönyv

Ügyfélforgalom számlálás modul

A Microsoft, a Windows, a Windows NT, a Windows NT Workstation a Microsoft Corporation bejegyzett védjegye vagy védjegyei az Egyesült Államokban

AWK programozás, minták, vezérlési szerkezetek

ELTE SAP Excellence Center Oktatóanyag 1

Microsoft Word előadás. Bevezetés az informatikába I.

Ablak és ablakműveletek

O365 és felhő szolgáltatások igénybevételéhez szükséges beállítások

Készítsen négy oldalas prezentációt az E CD bolt számára! Tervezze meg az emblémáját!

Átírás:

C# 6 - a Gyakorlat Windows Form alkalmazások Ugye emlékszik, hogy az órán meg nem oldott feladatokat otthon kell megoldani? (A mostaniakat azonban elég csak a zh után, és mivel több hasonló is van köztük, szemezgethet belőlük.) A 12. feladatot mindenképpen oldja meg! de csak a ZH UTÁN 1. feladat: Beszéljük meg a Grafikus_felulet_letrehozasa.pdf fájl tartalmát. NAGYON FONTOS: A leírtak alapján otthon oldja meg önállóan. Ez nagyon fontos a továbbiak megértéséhez. Most a megértésen van a hangsúly, ezért másolható módon elér minden kód-részletet. Ezeket a kódrészleteket az elso_grafikus_felulet nevű mappa tartalmazza. 2. feladat Készítsünk Windows Form alkalmazást, amelyben bekérjük a felhasználó vezeték- és keresztnevét, valamint a telefonszámát. Helyezzünk el egy nyomógombot az űrlapon, amelyre ha rákattint a felhasználó, akkor név szerint üdvözli őt az alkalmazás, és a név alatt a telefonszáma is megjelenik egy többsoros, csak olvasható szövegdobozban. Egy másik nyomógombra kattintva kilépünk az alkalmazásból. Az alkalmazás formaterve a következő: 1

Segítség a megoldáshoz: Hozzunk létre egy új projektet, legyen a neve Udvozlet. A New Project ablakban most a sablonok közül a legelsőt, a Windows Forms Application sablont válasszuk ki, majd nyomjuk meg az OK gombot. Létrejön az új projekt, amelynek elemeit a Solution Explorerben láthatjuk. A Form1.cs fájl tartalmazza a fő űrlap általunk megírandó kódját, tulajdonságait. A Properies ablakban megváltoztathatjuk az ablak tulajdonságait, például a Text tulajdonság legyen Üdvözlet. A Form Text tulajdonsága az ablak címének megadására szolgál. A munkaterületen megjelenik egy üres űrlap (ablak), amelyre a képernyő bal szélén látható ToolBox ból helyezhetünk el vezérlő elemeket. Helyezzük el a következő vezérlőelemeket az űrlapon, és állítsuk be a tulajdonságaik értékét az alábbiakra: Vezérlőelem Objektum Tulajdonság Tulajdonság érték label1 Text Vezetéknév label2 Text Keresztnév label3 Text Telefonszám textbox1 Name txtveznev textbox2 Name txtkernev textbox3 Name txttelefon textbox4 Name txtudvozlet ReadOnly True MultiLine True TabStop False button1 Name btnudvozles Text Ü&dvözöl button2 Name btnbezaras Text B&ezár A txtudvozlet szövegdoboz TabStop beállítása azt jelenti, hogy nem lehet majd elérni a tabulátor gombbal (nem parkol rajta a kurzor). A nyomógombok text tulajdonságánál megadott & jel az adott betű előtt lehetővé teszi, az un. gyors billentyűk használatát. Az ALT+az & jel mögött lévő karakter lenyomása ugyanazt eredményezi, mint a nyomógombra kattintás. Futtatáskor az Alt gomb megnyomásakor válnak láthatóvá a jelölt karakterek. Készítsük el a két nyomógombra való kattintás eseménykezelőjét! 2

Egy vezérlőelem Properties ablakában az Events eszközgombon kattintva az adott vezérlő által kezelhető eseményeket nézhetjük meg. A kezelni kívánt esemény nevén duplán kattintva létrejön a kezelőmetódus váza a Form1 osztályban és a kurzor a metódus kódjához ugrik. Természetesen nekünk kell megírni a metódus törzsét. Minden vezérlőhöz tartozik egy általánosan kezelt (default) esemény, ezt az adott vezérlőn duplán kattintva generálja a fejlesztő környezet. Mivel nyomógomb esetén a gombnyomás (.NET-ben Click) esemény a leggyakoribb, ezért most ezt úgy is generálhatjuk, hogy duplán kattintunk a nyomógombon. Ezzel a lehetőséggel élve nem választhatjuk meg az eseménykezelő metódus nevét, azt a vezérlőobjektum nevéből és az esemény nevéből rakja össze a kódgenerátor. (Ha mi akarjuk megadni a nevét, akkor csak egyszerűen gépeljük be az esemény neve mellé a tulajdonságablakban.) Írjuk meg az eseményhez tartózó kódot. (Új sort a \r\n hozzáadásával is generálhatunk.) Térjünk vissza tervező nézetbe, és készítsük el a második gomb Click eseménykezelőjét is. Futassuk a programot! Változtassuk meg az Üdvözlet szövegdoboz háttérszínét tetszőleges színre. (A színek, betűtípusok, stb. változtatásának módjáról a segédletben olvashat.) FONTOS MEGJEGYZÉS: Ha utólag meggondolja magát, és ki akar törölni egy vezérlőhöz tartozó eseménykezelő metódust, akkor azt a tulajdonságablakban kell megtennie, semmiképpen sem a Form1 osztály kódjában, mert a háttérben futó generált kódból is ki kell törölni az eseményfigyelésre vonatkozó információt. (Properties / events és kitörli a fölösleges eseményt.) Ha netalántán mégis belefutott ebbe a hibába, és hamarabb törölte ki az eseménykezeléshez tartozó metódust, akkor a design felületen ilyen hibajelenség fogadja: Ekkor már csak az a megoldás adódik, hogy nyissa meg a Form1.Designer.cs fájlt, és ott gyalog törölje ki a kifogásolt hivatkozást. 3

3. feladat Módosítsuk a programot úgy, hogy csak akkor jelenjen meg az üdvözlő szöveg, ha a felhasználó minden mezőt kitölt. Figyelmeztessük egy felbukkanó üzenet (MessageBox) ablakban a mulasztására. Az üdvözlet kiírása után töröljük a bevitt adatokat az adatbeviteli mezőkből. A telefonszámot tartalmazó szövegdobozt cseréljük ki maskedtextbox-ra, ami lehetővé teszi, hogy előre megformázott módon adjunk meg beviteli adatokat. Segítség a megoldáshoz: A maszk formátumleíró nyelve a VB6-beli MaskEd vezérlőelem, illetve az Access maszknyelvéhez hasonlít. Rendelkezésre áll maszkszerkesztő (Mask Editor) is, amely hasznos maszkok listáját tartalmazza. Ez a szerkesztő azt is lehetővé teszi, hogy a fejlesztő egyedi maszkokat hozzon létre, és ki is próbálja őket. Futásidőben a MaskedTextBox vezérlőelem eseményt vált ki, ha a szövegmezőbe érvénytelen karakter kerül. A Mask Editor vagy a vezérlőelem Mask tulajdonságán keresztül érhető el, vagy a képen látható módon a vezérlőelem jobb felső sarkában található smarttag-ra kattintással megjelenített felbukkanó menüből.(set Mask ) A megadott maszkkal azt érjük el, hogy csak számokat gépelhetünk a szövegdobozba. (A 9- cel jelölt hely opcionális, a 0-val jelölt helyre számot vár.) A hibaüzenet kiírásához a MessageBox osztály Show metódusára van szükségünk. Ennek legegyszerűbb paraméterezési módja, ha a kiírandó szöveget adjuk meg paraméterként. Formája: MessageBox.Show("szöveg", üzenetdoboz_címe ); Szövegdoboz tartalmának törlése: textbox1.clear(); metódushívással vagy textbox1.text= ; Text tulajdonság értékének megadásával 4

4. feladat Házi feladatként módosítsa tovább az előző feladatot. 1. Az adatmezők kiürítése után még azt is oldja meg, hogy a vezetéknév bevitelén villogjon a kurzor. 2. A felhasználó számára kicsit kényelmetlen, hogy az adatok begépelése után meg kell fognia az egeret, és rákattintani a gombra. (De az is, ha tabulátorokkal vándorol a gombra.) Ezért célszerű lenne figyelni az enter lenyomását is. Oldja meg, hogy az enter megnyomására írja ki az üdvözlő szöveget (vagy a hibajelzést, ha nincsenek kitöltve az adatok). Megoldhatja úgy is, hogy csak a telefonszám megadása után figyeli az entert, de úgy is, hogy minden egyes adat begépelése után. Az ügyetlenebb felhasználók kedvéért a gombnyomás eseményt is hagyja meg. Arra figyeljen, hogy NE kódismétléssel oldja meg a feladatot! 3. Talán észrevette, hogy a maszkolás ellenére elfogadja, ha a számok helyett szóközt írunk, vagy egyáltalán nem írunk semmit. Így félkész telefonszámokat is elfogad. Oldja meg, hogy csak a teljes telefonszámot tekintse valós adatnak. (Vagyis: a körzetszám elmaradhat, és a telefonszám lehet hatjegyű is és hétjegyű is.) 4. Ha nagyon ügyes és türelmes, akkor oldja meg, hogy valóban csak helyes telefonszámokat fogadjon el, vagyis kötelező legyen körzetszámot írni, ha az csak egyjegyű, akkor a telefonszámnak kell hétjegyűnek lennie, ha kétjegyű, akkor a telefonszám hatjegyű. (Első eset a budapesti számok, második a vidékiek.) Segítség a megoldáshoz: A Focus() metódus ráállítja a fókuszt az adott vezérlőelemre. Az enter megnyomásának figyelése: KeyDown esemény Az enter figyelése: if (e.keycode == Keys.Enter) ahol e a metódus paraméterében szereplő KeyEventArgs típusú változó. A teljes maszkolás figyelése: a maszkolt textbox MaskCompleted tulajdonsága. 5

5. feladat A következő feladat a string-műveletek gyakorlására szolgál, ezért engedünk meg most egykét helyesírási hibát. Egy szövegdobozba kérjünk be egy nevet. Az Üdvözlés gomb megnyomására határozzuk meg belőle a vezetéknevet és a keresztnevet - feltesszük, hogy egy szóköz választja el őket -, majd írjuk ki egymás alá egy-egy csak olvasható szövegmezőbe a vezetéknevet csupa nagybetűvel, a keresztnevet csupa kisbetűvel, valamint alájuk a teljes név hosszát is! Legalulra - csak a keresztnevet felhasználva - írjunk ki egy címkébe egy üdvözlést! A címke (Label) betűtípusa (Font tulajdonság) legyen Segoe Script, félkövér, 12-es betűméret. A Doktor gomb megnyomására a név elejére szúrjuk be a Dr. rövidítést! A Törlés gomb megnyomására töröljünk le minden mezőt! A Vége gomb az ablak bezárására szolgál. A form fejlécébe írjuk be: Stringek használata Segítség a megoldáshoz: Egy karakter pozíciójának meghatározása a stringben: IndexOf(karakter) metódussal Egy string hosszát a Length tulajdonsága adja meg. Rész-string képzése: a Substring(kezdőpozició, hossz) vagy a Substring(kezdőpozició) metódussal az utóbbi a kezdőpozíciótól a string végéig adja meg a rész-string-et. Nagybetűssé alakítás ToUpper() metódussal Kisbetűssé alakítás ToLower() metódussal Stringbe beszúrás Insert(kezdőpozíció, string ) metódussal További megjegyzések: 1. Próbálja ki, hogy a címkefeliratokat nem a tulajdonságok ablakban állítja be, hanem kódból, a form Form_Load eseményének hatására, mégpedig label1.text = "Kérem a nevet:"; stb. módon. 2. A feladat megoldása során használja helyesen a Dr. jelzőt, vagyis a Dr. és a név között legyen egy szóköz. Oldja meg, hogy ebben az esetben is külön tudja választani a vezetéknevet (Dr. nélkül) és a keresztnevet! 6

6. feladat Készítsen programot, amelyben egy szövegdobozban megadunk egy karaktersorozatot (mondatot), és a Szövegtördelés nyomógomb megnyomására egy több soros szövegdobozban szavakra (elemekre) tördelve mutatjuk meg az eredeti szöveget. Minden szó új sorba kerüljön. A feladat megoldásához használja a String osztály Split() metódusát. A metódus többféle módon is paraméterezhető, a legegyszerűbb, ha az elválasztó karaktert adjuk meg paraméterként: További megjegyzések: 1. Oldja meg, hogy a szöveg végén nyomott enter hatására is hajtsa végre a szövegtördelést. 2. Oldja meg, hogy a tördelésre használt textbox felületen csak akkor jelenjen meg a scrollbar, ha a beírt sorok száma ezt megkívánja. (Pl. legalább 10 sort gépelünk de ne égesse be a 10-t!) 3. Próbálja ki, hogy a tördelésre szánt textbox helyett richtextbox-ot használ. (Ekkor automatikusan csak akkor jelenik meg a scrollbar, ha szükség van rá.) 7

7. feladat Számolás numerikus alapműveletekkel Készítsük el az alábbi formot! A form fejlécébe írjuk be: Aritmetikai műveletek Az Összeadás, Kivonás, Szorzás, Osztás, Maradék gombokra kattintva a megfelelő műveletet elvégezzük az Operandus1 és Operandus2 szövegmezőkben levő adatokat felhasználva ( a baloldali operandusa az Osztás és Maradék műveletnek az Operandus1 legyen!), és az eredményt kiírjuk a csak olvasható Eredmény szövegmezőbe. A Töröl gomb az összes szövegmező tartalmát törli. A Vége gomb az ablak bezárására szolgál. a.) A feladatot egész ( int ) típusú adatokra készítsük el! Teszteljük úgy is az Osztás és Maradék műveleteket, hogy az Operandus2 ( azaz az osztó) értéke 0! Jegyezzük meg, mi történt! b.) Módosítsuk a programot úgy, hogy valós (double) típusú adatokkal dolgozhassunk! FIGYELEM! Valós típusú adat bevitelénél tizedesvessző van, nem tizedespont! Teszteljük úgy is az Osztás és Maradék műveleteket, hogy az Operandus2 ( azaz az osztó) értéke 0! Ugyanúgy működött valós adatok esetén a program, mint egész típusú adatokra? Megjegyzés: A ToString() metódus paraméterezésével a kiírandó double érték tizedes jegyeinek számát is megadhatjuk: ToString( F ) két tizedes ToString( F5 ) 5 db tizedesjegy (általában Fn n db tizedesjegy) ToString() 15 számjegy. 8

8. feladat Egy derékszögű háromszög két (valós) befogóját bekérve az átfogó kiszámítása. Készítsük el az alábbi szerkezetű formot: A form fejlécébe írjuk be: Derékszögű háromszög Egy-egy szövegmezőbe bekérjük a két befogót. A Számol gomb megnyomására helyes adatok esetén meghatározzuk az átfogót, és kiírjuk a csak olvasható harmadik szövegmezőbe. Logikailag hibás ( pl. negatív szám, vagy 0), vagy hiányzó adat esetén adjunk hibajelzést (MessageBox.Show(szöveg)). A Töröl gomb az összes szövegmező tartalmát törli. A Bezár gomb az ablak bezárására szolgál. 9

9. feladat Két valós számot (X és Y) bekérve írjuk ki a számtani, mértani és harmonikus közepüket! Számtani közép: Mértani közép: Harmonikus közép: X Y 2 X Y 1 1 1 X Y Készítsük el az alábbi szerkezetű formot: A form fejlécébe írjuk be: Közepek Egy-egy szövegmezőbe bekérjük a két számot. A Számol gomb megnyomására helyes adatok esetén meghatározzuk a közepeket, és kiírjuk a csak olvasható szövegmezőkbe 5 tizedes pontossággal. Hiányzó, vagy formai hibás adat esetén adjunk hibajelzést. Amelyik közép nem számolható, annak textbox mezőjébe írjuk be Nem számolható, a többi közép értékét határozzuk meg, és írjuk ki! A Töröl gomb az összes szövegmező tartalmát törli. A Bezár gomb az ablak bezárására szolgál. Ajánlott tesztadatok (pl. ezekkel az adatokkal nem számolható a jelzett közép): X Y nem számolható közép 0 bármely szám harmonikus 1-1 mértani, harmonikus 5-4 mértani 10

10. feladat Készítsen számkitaláló programot! A gép gondol egy számot pl. 1 és 100 között, és a felhasználónak kell tippeléssel kitalálni az értéket. Minden tipp után, a program megmondja, hogy a tipp kisebb, vagy a tipp nagyobb, mint a gondolt szám, s közben számolja a tippeket. Ha eltalálta a felhasználó a számot, akkor Gratulálok, eltaláltad!, üzenetet írja ki. Az ablak címsorában jelenjen meg a játék neve, és az is, hogy hányadik játékot játsszuk. Az Értékel gomb megnyomásakor értékeli ki a gép a tippet. Az Új játék gomb megnyomásakor új játékot kezdünk. Használjon véletlenszám-generátort a kitalálandó szám létrehozására. 11. feladat Írjon programot a következőkre: A form betöltésekor jelenjen meg a felső szövegdobozban egy aláhúzásokból álló véletlen hosszúságú szöveg. A Tipp gomb hatására cseréljük ki a szöveg adott sorszámú elemét a megadott betűre. A jobb olvashatóság kedvéért az eredeti szöveg minden egyes éles karaktere után legyen egy szóköz, amelyet nem cserélünk. Segítség: Az új szöveg az eddigi szöveg eleje + a megadott betű (string formában) + az eddigi szöveg vége. Továbbfejlesztések: a/ Csak akkor engedjen cserélni, ha még aláhúzás szerepel az adott helyen, egyébként adjon hibaüzenetet. 11

b/ A szövegdoboz egy (egyelőre konstansként) megadott kitalálandó szó betűinek helyét jelezze, a Tipp gomb hatására csak akkor cserélődjön ki az aláhúzás a megadott betűre, ha a tippelő eltalálta a mögötte lévő betűt. c/ Rakjon fel egy Megfejtés feliratú gombot is, amelyet megnyomva a szövegdobozban megláthatjuk a kitalálandó szót. d/ Az induló szót véletlenül generálja valahány előre megadott szó közül. (A szavakat tartalmazó tömb véletlen sorszámú eleme legyen a kitalálandó szó.) A szavakat adatfájlból olvassa be. e/ Továbbfejlesztheti egy akasztófa játékká. 12. feladat Vegye elő egy korábban megoldott feladatát (lehet az, amelyikkel a zh-ra készült vagy akár ismét megoldhatja a zh-feladatot is). Oldja meg, hogy a feladat eredményének néhány részlete grafikus felületen jelenjen meg. Például valami ehhez hasonló módon: Segítség: Hozzon létre egy új windows form alkalmazást. A projekthez adja hozzá a korábbi projekt alaposztályait (ugyanúgy, ahogy új osztályt hoz létre, csak Add existing item ) Arra figyeljen, hogy azonos legyen a névtér. A vezérlés megfelelő metódusait pedig másolja át az egyes eseményekhez. Pl: private void btnolvasas_click(object sender, EventArgs e) { AdatBevitel(); Kiir(); } és mögé másolja az AdatBevitel(), illetve Kiir() metódust (természetesen a szükséges deklarációkkal együtt). 12

Az adatbevitelen semmit sem kell változtatni (persze az adatfájlt be kell másolni a megfelelő helyre), a kiíratást pedig értelemszerűen át kell alakítani, hiszen nem konzolos felületre akarunk írni. A többsoros textbox-ot az AppendText() metódussal is fel lehet tölteni, csak persze figyeljen a soremelésre ( \n ). Hasonlóan tudja megoldani a többi funkciót is. Ha még játékos kedve is van, akkor megoldhatja azt is, hogy a gomb fölé mozgatva az egeret változzon meg a gomb színe, kilépve onnan pedig változzon vissza az eredeti színre. 13