Minden megjelenítésre kerülő osztály a .NET-ben a System.Windows.Forms.Control ősosztályból származik. Ez az ősosztály számos funkciót, property-t és eseményt tartalmaz, így az összes vezérlőnknek azonos lesz az alap funkcionalitása. Van néhány megkülönböztetett vezérlő ami egy a System.Windows.Forms.Control -ból származtatott másik ősosztályból, a System.Windows.Forms.UserControl -ból származik és az a célja, hogy egyedi vezérlők készítését támogassa. Ebben a fejezetben minden osztály a System.Windows.Forms névtérhez tartozik!
Properties: a vezérlők működését az un. tulajdonságaival (property) tudjuk szabályozni. A System.Windows.Forms.Control osztály legfontosabb property -jei:
Anchor | Ezzel a property -vel írható le, hogy a vezérlő hogyan viselkedjen, amikor a mérete megváltozik. |
BackColor | A vezérlő háttérszíne. |
Bottom | A vezérlő aljának a szülőablakhoz vett relatív helyzete. |
Dock | A vezérlő dokkolását teszi lehetővé a szülőablak széleihez. |
Enabled | A vezérlő felhasználói interface -ének engedélyezése. |
ForeColor | A vezérlő előterének színe. |
Height | A vezérlő magassága. |
Left | A vezérlő bal szélének a szülőablakhoz vett relatív helyzete. |
Name | A vezérlő hivatkozási neve. |
Parent | A szülőablak referenciája. |
Right | A vezérlő jobb szélének a szülőablakhoz vett relatív helyzete. |
TabIndex | A szülőablak tabulátor-sorrendjében vett sorszáma. |
TabStop | A szülőablakon tabulátorral történő fókusz tiltása. |
Tag | Tetszőleges adat tárolására szolgáló Object típusú property. |
Text | A tárolt szöveget tartalmazza. |
TextAlign | A tárolt szöveget elrendezése. |
Top | A vezérlő felső szélének a szülőablakhoz vett relatív helyzete. |
Visible | A vezérlő megjelenítésének engedélyezése. |
Width | A vezérlő szélessége. |
Az eseménykezelés alapvető igényünk. A Control ősosztályban megtalálhatóak a leggyakrabban használt, többnyire általános célú események. A legfontosabbak:
Click | Akkor váltódik ki, ha a vezérlőre kattintottak, vagy enter -t nyomtak rajta. |
DoubleClick | Akkor váltódik ki, ha a vezérlőre duplán kattintottak. |
DragDrop | Akkor váltódik ki, ha a drag&drop művelet befejeződik. |
DragEnter | Akkor váltódik ki, ha egy dragged állapotban levő objektum a vezérlő határain belülre kerül. |
DragLeave | Akkor váltódik ki, ha egy dragged állapotban levő objektum elhagyja a vezérlőt. |
DragOver | Akkor váltódik ki, ha egy dragged állapotban levő objektum a vezérlő határain belülre mozog. |
KeyDown | Akkor váltódik ki, ha egy billentyű lenyomásra és felengedésre kerül és a vezérlő jogosult a kezelésére. |
KeyPress | Akkor váltódik ki, ha egy billentyű lenyomásra kerül és a vezérlő jogosult a kezelésére. |
KeyUp | Akkor váltódik ki, ha egy billentyű felengedésre kerül és a vezérlő jogosult a kezelésére. |
GotFocus | Akkor váltódik ki, ha a vezérlő fókuszba kerül. |
LostFocus | Akkor váltódik ki, ha a vezérlő elveszíti a fókuszt. |
MouseDown | Akkor váltódik ki, ha egy egérgomb lenyomásra kerül és a vezérlő jogosult a kezelésére (az egérmutató felette van, engedélyezett, stb). |
MouseMove | Akkor váltódik ki, ha az egér mozog és a vezérlő jogosult a kezelésére (az egérmutató felette van, engedélyezett, stb). |
MouseUp | Akkor váltódik ki, ha egy egérgomb felengedésre kerül és a vezérlő jogosult a kezelésére (az egérmutató felette van, engedélyezett, stb). |
Paint | Akkor váltódik ki, ha a vezérlő kirajzolásra kerül. |
Validated | Közvetlenül azután váltódik ki, ha a vezérlő CausesValidation property -je igaz értéket kap. |
Validating | Közvetlenül azelőtt váltódik ki, ha a vezérlő CausesValidation property -je igaz értéket kap. |
Ha egy gombra gondolunk, valószínűleg egy téglalap alakú gombot képzelünk el, amire rá lehet kattintani, hogy ezáltal elvégezhessünk valamilyen műveletet. Ezt az általános gombot valósítja meg a ButtonBase ősosztályból származtatott Button osztály. Ezen kívül két speciális gomb osztály is származik ugyanebből az ősosztályból, ezek a RadioButton és a CheckBox osztályok.
Fontosabb saját property -k:
FlatStyle | A gomb megjelenítését szabályozza. |
Image | A gombon megjelenítendő kép hivatkozása. |
ImageAlign | A gombok megjelenítendő kép elhelyezkedése. |
Kétséget kizáróan a Click eseményt használjuk a legtöbbet ennél a vezérlőnél. Példa:
A Visual Studio 2005 azzal igyekszik megkönnyíteni a munkánkat, hogy a kódban a + jel lenyomásának hatására felajánlja, hogy a tabulátor gomb lenyomásával létrehozza az eseménykezelő függvényt. Így egészen egyszerű a designer-t megkerülve is eseményeket hozzáadni a vezérlőinkhez.
A Label vezérlő az egyik leggyakrabban használt vezérlő. Célja egyszerű szöveg megjelenítés. A LinkLabel vezérlő a Label osztályból származik és annak hiperhivatkozásként megjelenő változata.
Fontosabb property -k:
BorderStyle | A vezérlő keretének stílusa. |
FlatStyle | A vezérlő megjelenítését szabályozza. |
Image | A gombon megjelenítendő kép hivatkozása. |
ImageAlign | A gombok megjelenítendő kép elhelyezkedése. |
LinkArea | Csak LinkLabel. Azt szabályozza, hogy melyik szövegrész jelenjen meg hiperhivatkozásként. |
LinkColor | Csak LinkLabel. A hivatkozás színe. |
Links | Csak LinkLabel. Csak olvasható. A használni kívánt hivatkozások collection -je. |
LinkVisited | Csak LinkLabel. Csak olvasható. Jelzi, hogy használtuk -e már a linket. |
TextAlign | A megjelenítendő szöveg elhelyezkedése. |
Ezt a vezérlőt használjuk leggyakrabban a felhasználóval való interakcióra. A TextBoxBase ősosztályból származtatott TextBox, vagy RichTextBox osztály implementálja. Elsődleges célja, hogy a felhasználó számára szöveges beviteli lehetőséget nyújtson. Főbb property -k:
CharacterCasting | Alapvető karaktertranszformációs lehetőségek (ToUpper, ToLower) beállításai. |
MaxLength | Bevihető szöveg maximális hossza (karakterekben mérve). |
Multiline | Engedélyezi a többsoros adatbevitelt. |
PasswordChar | Engedélyezi, hogy megjelenítéskor a bevitt szöveg karakterei fedésbe kerüljenek a meghatározott karakterrel. |
ReadOnly | Csak olvasható mód engedélyezése. |
ScrollBars | A TextBox -hoz tartozó scrollbar -ok beállításai. |
SelectedText | A kijelölt szöveg. |
SelectionLength | A kijelölt szöveg hossza. |
SelectionStart | A kijelölt szöveg első karakterének indexe a teljes szöveg karakterláncában. |
WordWrap | Automatikus sortörés. |
Főbb események:
Enter GotFocus Leave Validating Validated LostFocus |
Fókusz-események: egymás után játszódnak le, amikor a vezérlő fókusza megváltozik. A Validated és a Validating kiváltódásának feltétele továbbá, hogy a CausesValidation property értéke igaz legyen. |
KeyDown KeyPress KeyUp |
Billentyű-események: egymás után játszódnak le, amikor egy billentyű lenyomásra kerül és a vezérlő jogosult annak kezelésére. |
TextChanged | Akkor váltódik ki, ha a szöveg megváltozik. |
Ez a már jól ismert legördülő menü. Praktikus, ha kis helyre szeretnénk sok alternatívát benyomorítani. Rendkívül könnyedén használható, az Items propertyn keresztül érhetjük el az elemeket, 0 bázisú indexeléssel, ezen keresztül szúrhatunk be, törölhetünk, módosíthetunk elemeket, melyeknek a ToString() függvény által visszaadott string lesz a megjelenése a ComboBox -ban. Fontos, hogy foreach ciklussal bejárható az Items. Főbb property -k:
Sorted | Azt határozza meg, hogy az elemek rendezettek e. |
Items | A legfontosabb property, a választható objektumokat tartalmazza. |
Főbb események:
Enter Leave Validating Validated |
Fókusz-események: egymás után játszódnak le, amikor a vezérlő fókusza megváltozik. A Validated és a Validating kiváltódásának feltétele továbbá, hogy a CausesValidation property értéke igaz legyen. |
KeyDown KeyPress KeyUp |
Billentyű-események: egymás után játszódnak le, amikor egy billentyű lenyomásra kerül és a vezérlő jogosult annak kezelésére. |
TextChanged | Akkor váltódik ki, ha a szöveg megváltozik. |
SelectedIndexChanged SelectedValueChanged |
Ha megváltozik a kiválasztott elem ( Index ), illetve, ha megváltozik a kiválasztott elem értéke ( Value ) |
Egy igen egyszerű elem, elsősorban számok bevitelére alkalmas. A le, föl nyilakkal, direktben átírva állítható az értéke. Megadhatunk minimum, maximum értéket, léptetési közt. Főbb property -k:
Hexadecimal | Hexadecimálisan jelenítse-e meg az értékét. |
Increment | Lépték nagysága, amivel a le,föl dombok növelik, illetve csökkentik az értékét. |
Maximum | A maximális érték meghatározása |
Minimum | A minimális érték meghatározása |
Readonly | Írásvédett e az elem |
UpDownAlign | A fel, le gombok bal illetve jobb oldalt helyezkedjenek-e el. |
Value | Az érték, amit megjelenítsen ( Egész szám ) |
Főbb események:
Enter Leave Validating Validated |
Fókusz-események: egymás után játszódnak le, amikor a vezérlő fókusza megváltozik. A Validated és a Validating kiváltódásának feltétele továbbá, hogy a CausesValidation property értéke igaz legyen. |
KeyDown KeyPress KeyUp |
Billentyű-események: egymás után játszódnak le, amikor egy billentyű lenyomásra kerül és a vezérlő jogosult annak kezelésére. |
TextChanged | Akkor váltódik ki, ha a szöveg megváltozik. |
ValueChanged | Ha megváltozik az érték, amit tárol |
Egy logikai értéket kérhetünk be vele lényegében. Két állása van kipipálva vagy nincs kipipálva. Remekül használható beállító panelokon, adat bekérő űrlapokon, esetleg bizonyos funkciók ki, be kapcsolására. Főbb property -k:
CheckAlign | Kilenc féle elrendezés közül választhatunk, attól függően, hogy a szöveg és a kipipálható négyzet egymáshoz képest hogy helyezkednek el. |
Checked | Ki van e pipálva a négyzet. |
CheckState | A "pipálási állapot". Fontos, hogy ez 3 féle lehet ! Kipipált, Nem Kipipált, illetve Még Nem Meghatározott |
Főbb események:
Enter Leave Validating Validated |
Fókusz-események: egymás után játszódnak le, amikor a vezérlő fókusza megváltozik. A Validated és a Validating kiváltódásának feltétele továbbá, hogy a CausesValidation property értéke igaz legyen. |
KeyDown KeyPress KeyUp |
Billentyű-események: egymás után játszódnak le, amikor egy billentyű lenyomásra kerül és a vezérlő jogosult annak kezelésére. |
CheckStateChanged | A már említett "pipálási állapot" megváltozásakor váltódik ki. |
CheckedChanged | Ha a 2 állapot, kipipálva, illetve nem kipipálva állapot egyikből a másikba átmegy. |
Hasonlóan a ComboBox -hoz alternatívák közül történő választásra való. Alapvetően kevés, esetlegesen hosszabb leírású választási lehetőségek megkülönböztetésére szolgál, jellemzően 2-4 db. Különlegessége, hogy egy konténer elemen belül lévő RadioButton -ok közül, csak egy lehet mindig bejelölve. ( Speciális állapot, amikor egyik sincs még bejelölve, ez csak kezdő állapot lehet. Amint egyiket bejelöltünk onnantól kezdve valamelyik, de csak egy, mindig bejelölve lesz, hacsak kódból másképp nem rendelkezünk ) Tehát jól látható, hgoy eldöntendő kérdéseket lehet vele feltenni. Az említett konténer objektum lehet például GroupBox, Panel, maga a Form, TabControl és még pár más elem. Főbb property -k:
CheckAlign | Kilenc féle elrendezés közül választhatunk, attól függően, hogy a szöveg és a kipipálható négyzet egymáshoz képest hogy helyezkednek el. |
Checked | Ki van e pipálva a négyzet. |
Főbb események:
Enter Leave Validating Validated |
Fókusz-események: egymás után játszódnak le, amikor a vezérlő fókusza megváltozik. A Validated és a Validating kiváltódásának feltétele továbbá, hogy a CausesValidation property értéke igaz legyen. |
KeyDown KeyPress KeyUp |
Billentyű-események: egymás után játszódnak le, amikor egy billentyű lenyomásra kerül és a vezérlő jogosult annak kezelésére. |
CheckedChanged | Ha a 2 állapot, jelölve, illetve nem jelölve állapot egyikből a másikba átmegy. |
Ez egy tároló elem. Esztétikai szempontból sem utolsó, jelölhetjük vele az egy panelon lévő összetartozó elemeket, elnevezhetjük, mégis a legfontosabb előnye, hogy az általa tartalmazott elemeket bejárhatjuk, mégpedig nagyon egyszerűen, mivel lekérhető a tartalma és utána egy foreach ciklussal végigszaladhatunk rajtuk és példának okáért láthatatlanná tehetjük őket, vagy épp letilthatjuk és ahelyett, hogy az összes elem nevét begépelnénk, elég csupán egy ciklust megfogalmaznunk rá. A GroupBox -hoz hasonló más konténer is létezik, amit hasonlóan hasznos dolgokra használhatunk.
Egy igen csak hasznos elem, ha valamit időzíteni szeretnénk. Működése roppant egyszerű, mindössze egy eseménye van, méghozzá a Tick, ami akkor váltódik ki, ha lejár az idő. Funkciója, hogy egy időtartam elteltével tudjunk feladatot elvégezni. Főbb property -k:
Interval | Milliszekundumban adhatjuk meg az intervallumot. Ez lesz az időzítés időtartama. |
Főbb események:
Tick | Akkor váltódik ki, ha letelt az Interval -ban megadott idő, természetesen, el kell indítanunk előbb a Start() függvénnyel. |