17. Eseményvezérelt programozás - a grafikus felület

Default book

Eseményvezérelt programozás

A hagyományos programozási módszer azon alapul, hogy a programozó vezeti a felhasználó kezét. A program elindul, egy-két dolgot lehet vele művelni, majd miután ezt elvégezte a programnak vége van.

A modern operációs rendszerek - elsősorban a grafikus rendszerek - azonban más működési elvet kínálnak. Általában rendelkeznek grafikus felülettel. Ezen a felületen el lehet helyezni grafikus elemeket, mint például ablak, gomb, csúszka, beviteli mező, stb...

Ezeknek a felületeknek a használata azon alapul, hogy a felhasználó egy egérrel rákattint egy vizuális elemre. Ezt a kattintást az operációs rendszer észleli, majd az egér koordinátái alapján meghatározza, hogy melyik alkalmazáshoz tartozik a grafikus elem, amire kattintottak, és a kattintás eseményt átadja a megfelelő alkalmazásnak. Az alkalmazás fogadja a kattintás eseményt és megállapítja, hogy a saját felületén belül melyik grafikai elemnek szól a kattintás. Ekkor már a program kezeli az eseményt, amit átad a grafikai elem objektumának. A grafikai elem objektuma fogadja a  kattintást és a megfelelő metódust meghívva átadja a kattintás eseményt az eseménykezelő metódusnak. Az eseménykezelő metódusban a programozó által írt kód az, amely utána a megfelelő módon reagál az eseményre.

Egér   Operációs rendszer   Alkalmazás   Grafikai elem
Kattintás => Megállapítja, hogy melyik alkalmazásnak szól az esemény és átadja annak => Megállapítja, hogy melyik grafikai elemnek szól és átadja a megfelelő objektumnak => A grafikai elem objektum átadja az eseményt az eseménykezelő metódusnak.

A fenti séma mindig így zajlik le például Windows, Linux + grafikus felület + Android, MacIntosh, iOS rendszereken is. Hasonlóan zajlik az események kezelése a weboldalakon is.

Azt a programozási módszert, amely elsősorban a felhasználó által generált beavatkozásokra reagál eseményvezérelt programozásnak nevezzzük.

Események

Minden olyan műveletet, amelyet a felhasználó indít el eseménynek nevezünk. ezen kívül esemény lehet még sok más történés is. Nézzük a leggyakoribb eseményeket és azt, amit kezelni lehet

  • Egérkattintás (bal, jobb gomb, dupla kattintás, szimpla kattintás)
  • Egér görgő görgetése
  • Egy adatbeviteli mezőn egy billentyű leütése (Melyik billentyű, volt-e mellé Shift, Alt vagy Ctrl billentyű lenyomva)
  • Egy adatbeviteli mezőn adatbevitelének végén az Enter vagy az ESC billentyű leütése
  • Tab billentyűvel továbblépés a következő grafikus elemre.
  • Egy ablak jobb felső (bezáró) gombjára kattintás
  • Egy alkalmazás egy ablaka megnyílik
  • Egy alkalmazás egy ablaka bezáródik
  • Egy alkalmazás elindul
  • Egy alkalmazás leáll
  • Egy adatbeviteli mező tartalma, értéke megváltozik

Grafikus elemek létrehozása

IDE => Integrated Development Environment => Integrált Tervező Környezet

A modern C# IDE-k alkalmasak arra, hogy egy grafikai felületet lértrehozzunk velük. Az IDE-k legenerálják a megfelelő kódot és ha a kezelőfelületen létrehozunk egy grafikus elemet, majd arra egérrel rákattintuk, akkor az IDE létrehozza a megfelelő eseménykezelő metódust.

Windows Forms Application

Ha egy új grafikus felületű alkalmazást kezdünk írni, akkor a Windows Form Application alkalmazást kell választanunk. Ez még a .Net előtti időkből való alkalmazáscsomag, amelyet a C# környezet beburkolt úgy, hogy a mai környezetben is jól lehessen használni.

Az alkalmazás létrejötte után egy grafikus tervező felületet kapunk (Design nézet), amely egy Windowsos ablakot mutat és IDE-től függően a bal vagy jobb oldalon találunk egy ablakot, amelyben fel vannak sorolva a különböző grafikus elemek. Ezeket az elemeket egérrel tudjuk elhelyezni az ablak felületén és a szokásos módszerekkel átméretezni, elhelyezni, stb...

Miközben mi grafikusan dolgozunk, közben a fejlesztői környezet automatikusan létrehozza azokat a programelemeket, amelyek leírják, hogy milyen vezérlők hol és hogyan helyezkednek el. Ezek a program fájlok:

  • Program.cs - ez tartalmazza azt a kódot, amit hagyományosan kell programoznunk.
  • MainForm.cs - az a kód, amelyet módosíthatunk majd a grafikai elemek eseményeinek kezeléséhez.

Minden más fájl, cs vagy nem cs közvetlenül nem módosítható, mert azt a program fordításkor újragenerálja, ezért bármilyen változtatás bennük felül lesz írva.