esemény		Leírás
Load		Az esemény akkor aktivizálódik, amikor az űrlap betöltődik.
Click		Az esemény akkor aktivizálódik, amikor az egérgombot megnyomjuk, vagy az entert leütjük.
MouseEnter	Az esemény akkor aktivizálódik, amikor az egeret behúzzuk a form területésre.
MouseLeave	Az esemény akkor aktivizálódik, amikor az egér elhagyja a mezőt
MouseHover	Az esemény akkor aktivizálódik, amikor az egér mozgása megáll a formon.
MouseMove	Az esemény akkor aktivizálódik, amikor az egér mozog. Az esemány paramétereként lekérdezhető az egér pozíciója.
MouseClick	Az esemény akkor aktivizálódik, amikor az egér bal gombját lenyomjuk a formon. Az esemény paramétereként lekérdezhető az egér pozíciója.
MouseDown	Az esemény akkor aktivizálódik, amikor az egér egy gombját lenyomjuk a Formon. Le éehet kérdezni az egér pozícióját, melyik gombot nyomták le.
MouseUp		Az esemény akkor aktivizálódik, amikor az egér egyik gombját felemeljük a Formon. Melyik gombját engedték fel, egér pozíciója.

A nyomógomb

A tulajdonságai és eseményei között rengeteg közös van a formmal.

Tulajdonság	|	Érték	|	Leírás
___________________________________________________________________
Text		|	Szöveg	|	Nyomógomb felirata
__________________________________________________________________
Enabled		|	bool	|	Látható de nem aktív
__________________________________________________________
Visible		|	bool	|	Nem látható futás közben
__________________________________________________________
TextAlign	| TopLeft 	| igazítás
		| TopCenter
		| TopRight
		| MiddleLeft
		| MiddleCenter
		| MiddelRight
		| Bottomleft
		| Bottomcenter
		| BottomRight
____________________________________________________________________
ForeColor	| 		| A felirat színe.
____________________________________________________
Font		|		| A felirat betűtípusára vonatkozó beállítások
_______________________________________________________________________________
TabIndex	|	int	| Ha több nyomógomb van fenn a Form-on, akkor az aktív nyomógombot 
				|	vagy vezérlőt a tabulátor lenyomásával választhatjuk meg.
				|Bejáráshoz jó.
____________________________________________________________________________________________________
TabStop		|	bool	| Azt határozza meg, hogy a tabulátor lenyomásával aktivitás erre a nyomógombra kerüljön vagy sem.
________________________________________________________________________________________________________________________
Image		|		| A nyomógombon megjeleníthetünk egy ikonképet.
_____________________________________________________________________________________
ImageAlign	|Ua. mint a Text| Az ikonkép igazítása a gombon.
____________________________________________________________________
TextImageRelation| Overlay		| A kép és felirat igazítását lehet beállítani a megadott
		 | ImageBeforeText	| értékekkel. Alapértelmezetten Overlay.
		 | TextBeforeImage	| Overlay: azonos méretet hagy a kép és a szöveg
		 | ImageAboveText	| számára a vezérlőn.
		 | TextAboveImage	|

Label (Címke)

A címke szöveg megjelenítésére használt vezérlő.
A labelben lévő szöveg futás közben csak olvasható, azaz a felhasználó nem szerkesztheti.
Ez persze nem jelenti azt, hogy a program fuitáűsa során a programozó nem módosíthatja  a tartalmát.
A címkát elsősorban egyéb vezérlők címkézésére szoktuk használni, de többsoros szövegre is alkalmas.
A legfontosabb tulajdonsága a Text amely futási időben módosítható, futási időben pedig csak közvetve módosíthaó.

Tulajdonság		Érték		Leírás
AutoSize		bool		True => a label automatikusan igazodik a szöveg méretéhez
__________________________________________________________________________________________________
BorderStyle		None
			FixedSingle	A szegélyt adhatjuk meg. Default: NONE.
			Fixed3D
____________________________________________________________________________________________________



TextBox

A textbox vezérlő szöveg megjelenítésére és bevitelére alkalmas.
A vezérkő legfontosabb tulajdonsága a Text, amely mind tervezéskor, mind a futás időben módosítható.
Alapból üres.



TextBox

A textbox vezérlő szöveg megjelenítésére és bevitelére alkalmas.
A vezérkő legfontosabb tulajdonsága a Text, amely mind tervezéskor, mind a futás időben módosítható.
Alapból üres.

Tulajdonság		Érték		Leírás
Readonly		bool		self explain
MaxLength		
CharacterCasing		Normal, Upper, lower	A beírt karaktereket formázza.
PasswordChar				Nem default jelszó karakter
UseSystemPasswordChar			DEfault jelszó karakter
MultiLine		bool
ScrollBats		None, Horizontal, vertiacal, both	akkor van értelme ha multi line
TextAlign		Left, Right, Center	A TextBoxban lévő szöveg igazítását adja meg.

	Események
A button label textbox vezérlőhöz tartozó események hasonlóak a formhoz.

Esemény		Leírás
KeyDown		Billentyűlenyomás érzékeli a nem nyomtatahtó karaktereket (alt,enter)
KeyPress	Nem érzékeli a nem nyomtatahtó karaktereket (alt,enter)
KeyUp		Felengedés érzékeli a nem nyomtatahtó karaktereket (alt,enter)
TextChanged 	Ha a szöveg megváltozik.

	Üzenetdoboz (MessageBox)
A MessageBox üzenetdoboz nem vezérlő, de rendkívül hasznos eszköz, mely segítségével egyszerű üzeneteket vagy figyelmeztetéseket írhatunk ki a felhasználóknak.

PL.:

MessageBox.Show("msg");

A messageboxot használhatjuk egy nyomógomb eseménykezelőjéhez kötve is.

Az első paraméter az üzenetdobozban megjelenő szöveg.
NMásodik címsor.
Hatmadik nyomogomb.
negyedik ikon.


Választógomb (RadioButton)

Két állapota lehet.
Lehet őket csoportosítani, így a csoport közül lehet csak egyet választani.

tulajdonság		érték						leírás
CheckAlign		TopLeft...MiddleCenter...BottomRight		Pozicionálás
Appearance		bool						Felirat megjelenés, akkor érdemes ha az AutoSize ki van kapcsolva. Ilyenkor ha nem fér el ... ot jelez.

Jelölőnégyzet (CheckBox)

Két vagy három állapota lehet. Indeterminate a harmadik

Ha kétállapotúként akarjuk használni akkor simán Checked tulajdonsággal kell megállapítani.

Harmadik állapothoz a ThreeState tulajdonságot true ra állítjuk.
Ezek után a CheckState tulajdonságnál tudjuk az állapotot beállítani.

Tulajdonság		érték			leírás
Checked			bool			bejelölték e, két állapotnál

ThreeState		bool			Default False

CheckState		Unchecked		Három állapotnál alkalmazandó
			Checked
			Indeterminate

A checkbox legtöbb tulajdonsága megegyezik a rádiógombéval.
Mindkét vezérlő esetén alapértelmezett és legfontosabb esemény a CheckChanged, állapotváltozáskor aktiválódik.


Csoportmező GroupBox, Panel
Ez a két konténer valósítja meg a csoportosításokat.
A checkboxnál különösen fontos.

A csoportmező és a panel között megjelenésbeli különbség van.
A csoportmezőnek alapértelmezetten van felirata és szegélye.
A panelnak nincs felirata és szegélye, de beállítható és lehet görgetősávot hozzáadni.

Tulajdonság	GroupBox		Panel
Text		van			Nincs
BorderStyle	nincs, szegély van	van default:none
AutoScroll	Nincs			Van



Dátum idő és időzítő

A dátum és az idő tárolására a C# nyelv a külön típusokat hozott létre. 
Ezekkel az idő egy adott opntját vagy egy időszeletet tudjukk ábrázolni illetve kezelni.
Ezenfelül van egy időzítőnk is.amivel pedig adott időközönként tetsuőleges eseménykezelőt tudunk lefuttatni.

Dátum és idő tárolása
	    DateTime usersDatumIdo = new DateTime();

            DateTime csakDatum = new DateTime(2024,3,11);
            DateTime mindketto = new DateTime(2024, 3, 11, 9, 55, 11);

            TimeSpan eltelDatumido = new TimeSpan(1, 59, 59);

Időkölünbözet számításra is alkalmas
	    DateTime d1 = new DateTime(2024, 12, 24);
            DateTime now = DateTime.Now;
            TimeSpan dist = d1 - now;

Dátum és idő megjelenítése:
év	y
hónap	M
nap	d
óra	h	H
perc	m
másodperc	s
ezredmásodperc	f

formátumkód	leírás				megjelenés
yy		év két számjeggyel		24 (2024 helyett)
yyyy						2024
M		hónap sorszáma			1-12
MM						01-12
MMM		hónap rövidítve			jan-dec
MMMM		teljes név			január-december
d		nap sorszáma			1-31
dd						01-31
ddd		nap rövidítve			hét-vas
dddd						teljes név
h		óra egy számjeggyel		1-12
H						0-23
hh  HH						01-12 00-23
m						0-59
mm						00-59	
s						0-59
ss						00-59
fff						000-999

	    DateTime d1 = new DateTime(2024, 3, 11, 10, 45, 10, 12);
            label1.Text = d1.ToString("yy/M/d");
            // 24.3.11
            label1.Text = d1.ToString("yyyy MMM d dddd");
            // 2024.mar.11.Hétfő

Rövidített jelölések
jel		megjelenés
d		2024.12.24
D		2024.december 24.
f		2024.december 24. 16:02
g		2024.12.24. 16:02
t		16:02
T		16:02:15

DateTime now = DateTime.Now;
int honap = now.Month;
int nap = now.Day;
int ev = now.Year;
int masodperc = now.Second;

DayOfWeek DayOfYear
            int hetnapja = int.Parse( now.DayOfWeek.ToString());
            int evnapja = int.Parse(now.DayOfYear.ToString());


Görgetősáv vezérlő
A ScrollBar vezérlőt általában az ablak jobb oldalán és alján találhatjuk meg.
A görgetősávot arra is lehet használni, hogy beállítsunk egy értéket minimum és maximum között.

A görgetősávon lévő görgetőnégyzet által kijelölt hely egy egész számot ad vissza amit Value tulajdonság tárol.
Két különböző gorgetősáv van c# ban. VScrollBar és HScrollBar. vertikális és horizontális
A görgetősávok alapeseménye a Scroll ami értékmódosításkor aktivizálódik.
A legfontosabb tulajdonságai:

Tulajdonság		|Érték	|	Leírás
Value			|int	|A hely értéke
Minimum			|int	|
Maximum			|int	|
SmallChange		|int	|A sáv végén kattintható nyilak ennyivel változtatjk a Value-t
LargeChange		|int	|Ha a sávon a négyzet elé vagy mögé kattintunk akkor a megaott értékkel változik a Value.

FELADADT:
színkeverő program

Képdoboz (PictureBox) vezérlő
A képdoboz segítségével képeket jeleníthetünk meg.
A képdobozba helyezendő képet futás előtt vagy közbe is hozzárendelhetjük.

Tervezési időben kétféle képpen lehet hozzárendelni.
Lokális forrásból  csak az űrlapról vagy vezérlőről érhető el.
Projekt forrásból  a kép a Resuorce al mappában lesz elhelyezve.

tulajdonság		|érték		|leírás
Image			|		|A megjelenítendő kép
InitialImage		|		|default pic, akkor ha a másik nem tölt be
ImageLocation		|String		|path,url
ErrorImage		|		|akkor ha nem tölt be
SizeMode		|Normal, CenterImage, AutoSize, StretchImage, Zoom|

SizeMode
Normal		bal felsőhöz igazítva
CenterImage	közép, ha a kép nagyobb, akkor a maradék le lesz vágva
AutoSize	automatikus
StretchImage	nyújt
Zoom		oldalarányok megtartásával igazodik a kép mérete

Lista és lenyíló lista vezétlők

A lista ListBox és a lenyíló ComboBox vezérlőkkel listát kezelhetünk.
A listából lehetőség van egy vagy több elemet kiválasztani.

ListBox
Több elemet is kiválaszthatunk.
Egy vagy több oszloppos is lehet.
Elemeket adhatunk hozzá és törölhetünk.
A felhasználó által az elemek nem szerkeszthetőek, csak vezérlőkön keresztül.

tulajdonság		|érték		|leírás
Items			|		|tervezés és futásidőben is módosítható. A lista elemeit tartalmazza. string tipusuok
Sorted			|bool		|A listát sortolja
MultiColumn		|bool		|
SelectionMode		|None One MultiSimple MultiExtended|

A lista elemeit a tervezési időben az Items tulajdonság melletti ... ikonra kattintva
tudjuk feltölteni a megjelenő szerkesztőablakban.

A listában lévő elemekre futásidőben is tudunk hivatkozni a sorszámuk megadásával.
A listában lévő elemek felülről lefelé haladva sorszámozzuk 0-tól kezdbe.
A lista egy adott elemére a listbox1.Items[x] formában tudunk hivatkozni.
A következő metódusok segítik a ListBox kezelését:

METÓDUS				LEÍRÁS
Items.Add(elem)			
Items.Insert(n,elem)
Items.Remove(szöveg)		Az adott szöveget tartalmazó sor törlése
Items.RemoveAt(n)
Items.Clear()
Items.Count()
Items.SelectedIndex		A kiválasztott elem indexét adja, ha nincs akkor -1
Items.SelectedItem
Items.SelectedItems
SetSelected(n,milyen)		Az n edik elemet a listában kijelölltté teszi, a milyen TRUE
FindString(szöveg)		A megadott szöveget keresi a listában

A lenyíló lista ComboBox

A lenyíló lista tulajdonképpen egy szövegmező és egy lista kereszezéséből jött létre.
Ezért a tulajdonságai és eseményei is többnyire ettől a két vezérlőtől öröklődnek.
A lenyíló listából csak egy elemet lehet kiválasztani és csak egyoszlopos megjelenítésre alkalmas.
Ha a lista elemeinek száma több mint az egyszerre megjeleníthető sorok száma, akkor a görgetősáv autómatikusan megjelenik.
Azt hogy a lenyíló lista milyen stílusú legyen, a DropDownStyle tulajdonság határozza meg.

Feladat: beolvasás szövegfájlból kiírás fájlba.
Szamok.txt tartalmát válogassa párosra és páratlanra.


--------------------------------------------------------------

Fájlkezelés using - gal



A using kulcsszó a c# ban egy speciális konstrukció, amely biztosítja, hogy egy adott erőforrás, mint pl fájl vagy hálózati kapcsolat, automatikusan felszabaduljon, miután már nincs rá szükség.

A using blokkot tipikusan olyan erőforrások kezellslre használjuk, amelyek implementálják az IDisposible inteface-t, és ameéyeket manuálisan kellene felszabadítani (pl fájlok, adatbázis-kapcsolatok, hálózati erőforrások stb).
A using automatiikusan gondoskodik arról, hogy az erőforrás helyesen lezáródjon vagy felszabaduljon, amikor  a kód végrehajtása elhagyja a using blokkot, még akkor is, ha kivétel történik.
A usingot arra használjuk, hogy biztosítsuk az erőforrások, például fájlok, adatbázis-kapcsolatok, és hálózati erőforrások autómatikus és biztonságos felszabadítását, amikor azok már nem szükségesek.

Használatának előnyei:
	Automatikus felszabadítás
		nem kell .Dispose()
	Könnyebb kód
		a kód egyszerűbbé válik, mert automatikusan kezeli az erőforrások felszabadítását
	Hibakezelés
		ha egy kivétel lép fel a using blokkban az erőforrás akkor is megfelelően lezáródik.