Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Windows Forms Párbeszédablakok és vezérlők

Hasonló előadás


Az előadások a következő témára: "Windows Forms Párbeszédablakok és vezérlők"— Előadás másolata:

1 Windows Forms Párbeszédablakok és vezérlők
Vizuális programozás Windows Forms Párbeszédablakok és vezérlők

2 Grafikus felület programozása
Windows Forms Windows Presentation Foundation

3 Windows Forms

4 Form - Hogyan hozzuk létre?
Új projekt létrehozásakor egy üres formot kapunk További form létrehozása 1. Jobb egérkattintás a projekten Solution Explorer-ben 2. Add 3. Add Windows Forms

5 Tulajdonságok beállítása
Események Form neve Kategóriák szerint ABC sorrendben Leírás 5

6 Eseménykezelés Események 6

7 Windows Forms Designer – Automatikusan előállított kód partial class
7

8 Saját kód – partial class

9 A form életciklusa Konstruktor
Load – felület kialakítása, erőforrások lefoglalása történhet Activated – a form megkapta az input fókuszt Deactivate – a form elvesztette az input fókuszt SizeChanged FormClosing – CancelEventArgs.Cancel FormClosed Példaprogram: FormEsemenyek Az Activated és Deactivate többször is bekövetkezhet a program futása során.

10 Windows Forms vezérlők
Windows Forms vezérlők

11 Hogyan használjuk a vezérlőket?
11

12 A háttérben keletkező kód

13 Elnevezési konvenció btOK, frmFőablak, msFőmenü, tsmiFájl, tbNév
A név két részből áll A komponens típusát beazonosító rész, ez kisbetűs: bt (Button), ms (MenuStrip), tsmi (ToolStripMenuItem), tb (TextBox), cb (ComboBox), lb (ListBox) A feladatot beazonosító rész, egy vagy több szóból áll, nagybetűvel kezdődik: Főablak, Főmenü, OK, Fájl, Név

14 Vezérlők elrendezése Elrendezés a Format menüvel és eszköztárral
Tabulátor sorrend beállítása Vezérlő lehorgonyzása Dokkolás

15 Toolbox beállítása 15

16 Hogyan lássuk el menüvel a formot?
16

17 Menü MenuStrip komponens ablakra helyezése
Szokásos menüpontok automatikusan Megadás kézzel Minden menüpont egy önálló objektum saját tulajdonságokkal és eseményekkel

18 Menü tulajdonságok használata

19 Gyorsító billentyű, kiválasztó pipa, engedélyezés

20 Fontosabb események DropDownOpening – mielőtt lenyílna Click
Mintaalkalmazás

21 Gyorsmenü ToolStripMenuItem Kétféleképpen szerkeszthető Edit Items …
A formon a főmenüvel azonos módon

22 Eseménykezelés Azonos a főmenü eseménykezelésével

23 GroupBox és Panel vezérlő használata
Helyezzünk el további vezérlőket rajta 2 Helyezzünk el egy panelt vagy egy csoportablakot a formon (Panel vagy GroupBox) 1 Korábban a formra helyezett vezérlőket is ráhúzhatunk 3 A Panel vezérlő görgetősávokkal is rendelkezhet (AutoScrollbar=True) 4 A GroupBox címsorral is rendelkezhet (Text=címszöveg) 5

24 Példaalkalmazás a csoportablak és a jelölőnégyzet használatára

25 Listaablak (ListBox) vezérlő használata
Elemek hozzáadása tervezési időben: Items tulajdonság – String Collection Editor

26 Listaablak kezelése Listaablak feltöltése futási időben
string[] nevek= {"Alma", "Körte", "Banán", "Narancs"}; lbListaablak.Items.AddRange(nevek); Kijelölt elem lekérdezése tbListaelem.Text= (string)lbListaablak.SelectedItem;

27 Tulajdonságok A listában szereplő elemek száma. Items.Count
A kiválasztott elem sorszáma (0-tól kezd). vagy -1, ha nincs kiválasztva egy sem. SelectedIndex Egy vagy több listaelem választható ki egyszerre. SelectionMode A görgető sáv mindig látható. ScrollAlwaysVisible Többoszlopos megjelenítés engedélyezése. MultiColumn Leírás Tulajdonság

28 Metódusok Elemek eltávolítása. Items.Remove/Items.Clear
Elemek hozzáadása. Items.Add/ Items.Insert Leírás Metódusok

29 Listaablak használata
Példaalkalmazás Listaablak használata

30 Eszköztár készítése és használata
ToolStrip komponens formra helyezése Eszköztár elemek létrehozása legördülő listából történő választással Feliratos nyomógomb: DisplayStyle=Text, Text=felirat Ikonos nyomógomb: DisplayStyle=Image, Image=… BMP fájlok szabványos ikonok az eszköztárra: jobb egérgomb az eszköztáron, Insert Standard Items

31 Eseménykezelés Click esemény
A nyomógombhoz ugyanazt az eseménykezelőt kell hozzárendelni, mint amit a megfelelő menüponthoz rendeltünk

32 Állapotsor (StatusStrip)
StatusStrip a formra Legördülő listából állapotsor elem választás Második lépés ismétlése Állapotsor elemek átnevezése Kijelölés majd Properties vagy Állapotsor kijelölése/Properties/Items

33 Állapotsor elemeinek beállítása

34 Szöveg beállítása programból
ssÁllapotsor.Items[0].Text= ”Első”;

35 Állapotsor és választógomb használata
Példaalkalmazás Állapotsor és választógomb használata

36 Egérkezelés Fontosabb események Paraméter Példaprogram: EgérKezeles
MouseDown MouseMove MouseUp Paraméter MouseEventArgs e e.Button e.X, e.Y, e.Location Példaprogram: EgérKezeles

37 Párbeszédablakok használata Windows Forms alkalmazásokban
Előre definiált párbeszédablakok Visual Studio .NET-ben Párbeszédablakok megjelenítése DialogResult tulajdonság Adatbevitel párbeszédablakon keresztül

38 Előre definiált párbeszédablakok
OpenFileDialog Állomány megnyitásakor hely és név megadása SaveFileDialog Állomány mentésekor hely és név megadása ColorDialog Színválasztás palettáról és újabb színek hozzáadása a palettához FontDialog A rendszerben telepített fontok megtekintése és betűtípus beállítás PrintDialog Nyomtató kiválasztása és nyomtatással kapcsolatos beállítások PageSetupDialog Oldalbeállítás nyomtatáshoz PrintPreviewDialog Úgy jeleníti meg a dokumentumot, ahogyan az a nyomtatás eredményeképpen látható lesz

39

40 Párbeszédablakok megjelenítése
Előre definiált párbeszédablak megjelenítése private void button1_Click(object sender, System.EventArgs e) { OpenFileDialog1.ShowDialog(); } Üzenetablak megjelenítése public void PerformCalculations() { MessageBox.Show ("Művelet végrehajtva", "Jelentés",MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); }

41 DialogResult DialogResult
A visszatérési érték adja meg, hogy mely gombbal zárta be az ablakot a felhasználó DialogResult.Cancel jelzi, hogy a felhasználó a Mégse gombon kattintott Példa Ha készítünk egy párbeszédablakot, annak lezárását nyomógombokkal (OK, Mégse, stb.) oldjuk meg. Ezek DialogResult tulajdonsága határozza meg, hogy milyen értékkel tér vissza a ShowDialog(). A DialogResult tulajdonság tervezési és futási időben is beállítható.

42 Adatbevitel párbeszédablakon keresztül
Eredmények kiolvasása a párbeszédablakból és felhasználásuk Ha OK, Megnyit, Mentés, stb. gombbal zárta le a felhasználó a párbeszédablakot, akkor 1 Kiolvassuk a párbeszédablak objektum egy vagy több tulajdonságát 2 public void DisplayValue() { string Útvonal; DialogResult Eredmény = openFileDialog1.ShowDialog(); if (Eredmény == DialogResult.OK) { Útvonal = openFileDialog1.FileName.ToString(); MessageBox.Show("A kiválasztott állomány: '" + Útvonal + "'", "Kiválasztás", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1); }

43 Beépített párbeszédablak használata - mintaprogramok
Beepitett_Pb_text Beepitett

44 Saját párbeszédablak Új form létrehozása (egy új ablakosztály)
Komponensek elhelyezése a formon Automatikus bezárás beállítása egyes nyomógombokhoz előre megadott visszatérési értékekkel Párbeszédablak objektum létrehozása Kezdeti beállítások/a felhasználó által megadott adatok kiolvasása – probléma private elérésű komponensek Megjelenítés Bezárás Adatok kiolvasása

45 A párbeszédablak automatikus bezárása
Példaprogram: Pbablak_Automatikus_Bezarasa

46 A felhasználó által megadott adatok kiolvasása
A komponens alapból private elérésű A párbeszédablakon kívülről nem olvashatóak/írhatóak a tulajdonságai 1. megoldás: a komponens elérése legyen internal 2. megoldás: létrehozunk egy tulajdonságot a párbeszédablak osztályában

47 Lekérdező tulajdonság beépítése
Példaprogram: Pbablak_Adatbeallitas_Kiolvasas

48 Felhasználói adatbevitel ellenőrzése
A vezérlők ellenőrzése a Validating esemény felhasználásával Példaalkalmazás: TextBox komponens használata Az ErrorProvider vezérlő használata Példaalkalmazás: TextBox komponens használata ErrorProvider-rel

49 Validating esemény Azelőtt következik be mielőtt a vezérlő elveszítené az input fókuszt Ha a vezérlő CausesValidation tulajdonsága True-ra van állítva (ez az alapértelmezett) Szabályozhatjuk, hogy mikor kerülhet át a fókusz egy másik vezérlőre

50 e.Cancel használata

51 Példaalkalmazás: TextBox komponens használata
Validalas

52 ErrorProvider vezérlő
Hibákat jelenít meg a formon keresztül történő felhasználói adatbevitel ellenőrzése során Hibákat jelenít meg egy adathalmazban (dataset) Kulcs tulajdonságok Kulcs metódusok ContainerControl Icon SetError

53 ErrorProvider Érvénytelen bevitt adat esetén hibaüzenet megjelenítését teszi lehetővé Előnye: az érintett vezérlő mellett megjelenik egy hibaikon Ha a felhasználó az ikon felé helyezi az egérkurzort, egy gyorstippben megjelenik a hibaüzenet

54 Fontos tulajdonságok ContainerControl – ez tartalmazza az ErrorProvider-t Icon – választott ikon az alapértelmezett helyett

55 Példaalkalmazás: ErrorProvider
Fontos metódusok SetError – meghatározza, hogy melyik vezérlő mellett jelenjen meg az ikon és, hogy mi legyen a hibaüzenet szövege Példaalkalmazás: ErrorProvider

56 Vezérlők elhelyezése az ablakon futási időben

57 Controls gyűjtemény Vezérlő objektumok gyűjteménye
Add, Remove és RemoveAt metódusokkal bővítjük vagy szűkítjük a gyűjtemény A Contains metódus adja meg, hogy egy vezérlő tagja-e a gyűjteménynek

58 Fontosabb metódusok Egy iterátort ad vissza, amivel végiglépkedhetünk a gyűjteményen. GetEnumerator Visszaadja a megadott vezérlő sorszámát. IndexOf Visszaad egy String-et, ami az aktuális objektumot reprezentálja. ToString Eltávolítja az indexxel megadott sorszámú egy vezérlőt. RemoveAt Vezérlő eltávolítása a gyűjteményből Remove Visszaadja, hogy egy adott vezérlő tagja-e a gyűjteménynek. Contains Az összes vezérlő eltávolítása a gyűjteményből. Clear Vezérlő tömb hozzáadása a vezérlő gyűjteményhez. AddRange Egy vezérlő hozzáadása a vezérlő gyűjteményhez. Add Leírás Metódus

59 Vezérlők elhelyezése a formon futási időben
Lépések A vezérlő létrehozása 1 CheckBox cbÉrtesít = new CheckBox(); // tulajdonságok beállítása cbÉrtesít.Text = "Kér értesítést"; cbÉrtesít.Left = 24; cbÉrtesít.Top = 80; A szerkezeti (elrendezési) logika kikapcsolása a tárolón. Itt a tároló egy csoportablak. 2 GroupBox1.SuspendLayout();

60 Vezérlők elhelyezése a formon futási időben
Lépések Vezérlő hozzáadása a tárolóhoz (container) a Controls tulajdonság Add metódusával. 3 // az új vezérlő hozzáadása a gyűjteményhez GroupBox1.Controls.Add(cbÉrtesít); A szerkezeti (elrendezési) logika bekapcsolása a megcélzott tároló komponensen. 4 groupBox1.ResumeLayout(true);

61 Példaalkalmazás VezerlokFutasidoben

62 Gyorsmenü létrehozása futási időben
Gyorsmenü formhoz rendelése Menüelemek hozzáadása futásidőben Eseménykezelők készítése a menüelemekhez Menü tulajdonságok használata Gyakorlat: Menüfrissítés futásidőben

63 Gyorsmenü formhoz rendelése futásidőben1
ContextMenuStrip objektum létrehozása this.ContextMenuStrip = new ContextMenuStrip(); Menüpontok elhelyezése a felbukkanó menüben this.ContextMenuStrip.Items.Add("Új" + this.ContextMenuStrip.Items.Count.ToString()); Közös eseménykezelő regisztrálása az összes menüponthoz this.ContextMenuStrip.ItemClicked += new ToolStripItemClickedEventHandler( cmsGyorsMenü_ItemClicked);

64 Gyorsmenü formhoz rendelése futásidőben2
Eseménykezelő függvény megírása private void cmsGyorsMenü_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { switch (e.ClickedItem.ToString()) { case "Új0": MessageBox.Show("A kiválasztott menüpont: Új0"); break; case "Új1": MessageBox.Show("A kiválasztott menüpont: Új1"); case "Új2": MessageBox.Show("A kiválasztott menüpont: Új2"); }

65 Példaalkalmazás GyorsMenu

66 MDI alkalmazások létrehozása
SDI és MDI alkalmazások MDI alkalmazások létrehozása Szülő és gyermek formok kapcsolata Gyakorlat: MDI alkalmazás létrehozása

67 SDI és MDI alkalmazások
Csak egy dokumentum látható Egyszerre több dokumentum látható Csak a dokumentum bezárása után nyitható meg egy újabb dokumentum Mindegyik dokumentum saját ablakban van megjelenítve 67

68 MDI alkalmazások létrehozása
Szülő form létrehozása Új projekt létrehozása IsMdiContainer tulajdonság True-ra állítása Menüpont a gyermek form megjelenítéséhez Gyermek form definiálása Project/Add Windows Form Gyermek form létrehozása és megjelenítése protected void MenuItem2_OnClick(object sender, System.EventArgs e) { // Gyermek form létrehozása. frmGyermek frmGyermek = new frmGyermek(); // Szülő form beállítása. frmGyermek.MdiParent = this; // Gyermek form megjelenítése. frmGyermek.Show(); } 68

69 Szülő és gyermek formok kapcsolata
Gyermekablakok listája Ablak menü létrehozása A főmenü objektumban: MdiWindowListItem=ablak menüpont objektum neve Az aktív MDI gyermekablak beazonosítása ActiveMdiChild tulajdonság Gyermekablakok elrendezése LayoutMdi metódus meghívása Form frmAktívGyermek = this.ActiveMdiChild; 69

70 MDI alkalmazás létrehozása

71 Drag & Drop

72 Fogd és vidd Két szövegmező, a felsőből húzzuk át a szöveget az alsóba
Az alsóban az AllowDrop=True kell legyen Eseménykezelés az eredeti helyen (felső szövegmező): MouseDown – egérgomb lenyomás  elindítjuk a műveletet TextBox1.DoDragDrop(TextBox1.Text, DragDropEffects.Copy);

73 Fogd és vidd Eseménykezelés a cél helyen:
DragEnter – az egérrel a felhasználó bevonszolt valamilyen objektumot a szövegmező területére  ellenőrizzük a tartalom formátumát és engedélyezzük a műveletet if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; DragDrop – a felhasználó elengedte az egérgombot  az átvonszolt szöveget megjelenítjük a cél szövegmezőben


Letölteni ppt "Windows Forms Párbeszédablakok és vezérlők"

Hasonló előadás


Google Hirdetések