Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás
Véletlen számok generálása a Random osztály • System.Random Metódus
Típus
Funkció
Next()
int
Egy véletlen nem-negatív int értékkel tér vissza.
Next(int maxvalue)
int
Egy véletlen nem-negatív int értékkel tér vissza, amely kisebb a megadott maximumnál (maxvalue).
Next(int minvalue, int maxvalue)
int
Egy véletlen int értékkel tér vissza, amelyre igaz, hogy minvalue<=value<maxvalue
NextDouble()
double
Egy véletlen double értékkel tér vissza, amelyre igaz, hogy 0.0<=value<1.0
Random példa 1.
int[,] tomb = new int[10,3]; Random rand = new Random(); for (int i = 0; i < 10; i++) { tomb[i, 0] = rand.Next(); tomb[i, 1] = rand.Next(10); tomb[i, 2] = rand.Next(-5, 5); }
tomb[,0] tomb[,1] 65608926 1 602213958 5 1974240909 9 997460954 4 1955236001 6 796408036 3 98342646 0 629412694 7 1852476578 5 1830828821 2
tomb[,2] -3 -5 -2 -3 2 -3 -3 1 -5 4
Random példa 2.
double[] tomb = new double[10]; Random rand = new Random(); for (int i = 0; i < 10; i++) { tomb[i] = rand.NextDouble(); }
0,438931300043562 0,552266800101971 0,0488236667815706 0,925365710596259 0,741456752522596 0,0849849493638542 0,726119756105412 0,556502985561501 0,631167631424576 0,289191639651168
A CheckBox komponens Tulajdonságok: Típus
Tulajdonság
Magyarázat
bool
Checked
Állapotjelző két állapot esetén: (true: bejelölve,false: nem bejelölve)
bool
ThreeState
Beállítható, hogy két, vagy három állapota legyen a Controlnak
CheckState
CheckState
Állapotjelző három állapot esetén: (CheckState.Checked, CheckState.Indeterminate CheckState.Unchecked)
Események: Esemény
Magyarázat
CheckedChanged
A Checked tulajdonság megváltozása esetén meghívódó esemény
CheckStateChanged
A CheckedState tulajdonság megváltozása esetén meghívódó esemény
Mintaprogram Visual Studioban
A DataGridView komponens
• Adatok táblázatos megjelenítésére szolgáló komponens • Az táblázat celláiba elméletileg bármilyen típus kerülhet, megjelenítésük az adat ToString() metódusával történik. • Kétféle kezelési lehetősége van: • Direkt adat írása, olvasása • Adatforrás tábla (DataSource) hozzákötése, és annak adatai
• Lehetőség van többféle mező felvételére • Button, Image, CheckBox, Listview
DataGridView Egyszerű tulajdonságok Típus
Tulajdonság
int ColumnCount int RowCount object Item[int col, int row] (Indexer)
oszlopok számának beállítása sorok számának beállítása Egy adott cella értékének írása/olvasása. Pld.: dataGridView1[2, 2].Value = 2; string szoveg = dataGridView1[2,2].Value.ToString();
bool bool bool bool bool bool bool bool string
Megengedi a felhasználónak, hogy sorokat vegyen fel. Megengedi a felhasználónak, hogy sorokat töröljön. Megengedi a felhasználónak, hogy átrendezze az oszlopokat Megengedi a felhasználónak, hogy méretezze az oszlopokat Megengedi a felhasználónak, hogy méretezze a sorokat Az oszlopfejlécek láthatóak A sorfejlécek láthatóak A grid csak olvasható Fejlécek feliratainak beállítása
AllowUserToAddRows AllowUserToDeleteRows AllowUserToOrderColumns AllowUserToResizeColumns AllowUserToResizeRows ColumnHeadersVisible RowHeadersVisible ReadOnly Columns[int].HeaderText
DataGridView Egyszerű események • CellContentClick(object sender, DataGridViewCellEventArgs e) • Cella tartalomra való click esetén meghívódó esemény
• CellClick(object sender, DataGridViewCellEventArgs e) • Cellára klikkelés esetén következik be
• DataGridViewCellEventArgs: int int
ColumnIndex RowIndex
a cella oszlop indexe a cella sor index
Példa Visual studioban
Billentyűzet eseményei • Amennyiben egy Control aktív (ki van választva) akkor a billentyűzet eseményeit lehet vele kezelni. • Események: Esemény
Mikor
Átadott paraméter
KeyDown
Billentyű lenyomásakor
KeyEventArgs
KeyPress
Billentyű nyomva tartásakor
KeyPressEventArgs
KeyUp
Billentyű felengedésekor
KeyEventArgs
• Az eseményeket kezelhetjük Form szinten is, a Form Keypreview tulajdonságának true-ra állításával, ekkor a Form minden billentyűeseményt kezel.
KeyPressEventsArgs, KeyEventArgs KeyPressEventArgs string KeyChar a megfelelő karaktert adja vissza KeyEventArgs bool Alt bool Control bool Shift Keys KeyCode Keys
KeyData
int
KeyValue
Alt le van nyomva Control le van nyomva Shift le van nyomva Visszaadja a lenyomott billetnyű keycode-ját (Keys, lásd példaprogram) Visszaadja a lenyomott billetnyű keycode-ját (Keys, lásd példaprogram) vagy kapcsolattal összefűzve a módosító billentyűkkel a lenyomott billentyűhöz tartozó számérték
Példa Visual Studioban
Egér események kezelése Mouse Event Click MouseClick
Description Click esemény Click esemény egér információkkal DoubleClick Dupla click MouseDoubleClick Dupla click egér információkkal MouseDown Egér gomb lenyomásakor MouseEnter Egér a control felé ér MouseLeave Egér a controlt elhagyja MouseMove Egér mozog a control felett MouseUp Egér gomb felengedésekor
Argumentum EventArgs MouseEventArgs EventArgs MouseEventArgs MouseEventArgs EventArgs EventArgs MouseEventArgs MouseEventArgs
MouseEventArgs Public property Button
Public property X Public property Y
Megmondja, hogy melyik gomb van lenyomva Lehetséges értékek: MouseButtons.Left MouseButtons.Middle MouseButtons.Right Gets the x-coordinate of the mouse during the generating mouse event. Gets the y-coordinate of the mouse during the generating mouse event.
Példa Visual studioban
Objektumok létrehozása futásidőben • Az eddig tanult komponenseket is létrehozhatjuk a program futása közben, pld: • Button gomb = new Button(); • Ekkor létrejön az objektum, de nem helyeződik el, meg kell adni a tárolót, ahol elhelyezzük, erre a Parent tulajdonság szolgál: • gomb.Parent = this; • Hozzárendelhetünk eseményeket is a Controlhoz, pld: • gomb.Click +=new EventHandler(gomb_Click); • Ekkor a gomb_Click függvénynek léteznie kell, a megfelelő paraméterekkel
Példa private void gomb_Click(object sender, EventArgs e) { (sender as Button).Text = "Megnyomtál"; } private void Form1_Load(object sender, EventArgs e) { Button gomb = new Button(); gomb.Parent = this; gomb.Click +=new EventHandler(gomb_Click); }
Objektumok létrehozása futásidőben események hozzárendelése private void Form1_Load(object sender, EventArgs e) { Button gomb = new Button(); gomb.Parent = this; gomb.Click +=new EventHandler(gomb_Click); gomb.MouseMove+=new MouseEventHandler(gomb_MouseMove); gomb.KeyDown+=new KeyEventHandler(gomb_KeyDown); } private void gomb_MouseMove(object sender, MouseEventArgs e) { (sender as Button).Text = "Mozog"; } private void gomb_KeyDown(object sender, KeyEventArgs e) { (sender as Button).Text = e.KeyCode.ToString(); }