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

Vizuális programozás Szoftvertechnológia I. Párbeszédablakok és vezérlők C#

Hasonló előadás


Az előadások a következő témára: "Vizuális programozás Szoftvertechnológia I. Párbeszédablakok és vezérlők C#"— Előadás másolata:

1 Vizuális programozás Szoftvertechnológia I. Párbeszédablakok és vezérlők C#

2 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

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

4 Eseménykezelés

5 Esemény modell a.Net keretrendszerben Button1 Meghívja a metódusreferenciát this.button1.Click += new System.EventHandler(this.button1_Click); private void button1_Click(object sender, System.EventArgs e) { … } A metódusreferencia meghívja a hozzárendelt metódust Metódusreferencia (delegate) this.button1.Click += new System.EventHandler(this.button1_Click);

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

7 Saját kód – partial class

8 Hogyan tegyünk vezérlőt a formra?

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

10 Controls Toolbox beállítása Jobb-egérgomb a Toolbox-on Choose Items.NET Framework fül. Komponens kiválasztása.

11 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

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

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

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

15 Állapotsor elemeinek beállítása

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

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

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

19 Menü tulajdonságok használata

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

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

22 Windows Forms vezérlők

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

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

25 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ásTulajdonság

26 Metódusok Binds the ListBox to a name of the column in the Data source. DisplayMember Binds the ListBox to a data source.DataSource Elemek eltávolítása.Items.Remove/Items. Clear Elemek hozzáadása.Items.Add/ Items.Insert LeírásMetódusok

27 Példaalkalmazás Listaablak használata

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

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

30 Drag & Drop

31 Fogd és vidd Két szövegmező, a felsőből húzzuk át a szöveget az alsóba 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 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 MouseDown – egérgomb lenyomás  elindítjuk a műveletet TextBox1.DoDragDrop(TextBox1.Text, DragDropEffects.Copy); TextBox1.DoDragDrop(TextBox1.Text, DragDropEffects.Copy);

32 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 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; 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 DragDrop – a felhasználó elengedte az egérgombot  az átvonszolt szöveget megjelenítjük a cél szövegmezőben

33 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

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

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

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

37 MDI alkalmazás létrehozása

38 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 Példaalkalmazás

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

40

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

42 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éldaPé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ó.

43 Adatbevitel párbeszédablakon keresztül 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); } … } 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); } … } Eredmények kiolvasása a párbeszédablakból és felhasználásuk Kiolvassuk a párbeszédablak objektum egy vagy több tulajdonságát Ha OK, Megnyit, Mentés, stb. gombbal zárta le a felhasználó a párbeszédablakot, akkor

44 Beépített párbeszédablak használata - mintaprogramok BeepitettPbtextBeepitett

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

46 Controls gyűjtemény Vezérlő objektumok gyűjteménye 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 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 A Contains metódus adja meg, hogy egy vezérlő tagja-e a gyűjteménynek

47 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őlRemove 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ásMetódus

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

49 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. // az új vezérl ő hozzáadása a gy ű jteményhez GroupBox1.Controls.Add(signatureCheckBox); // az új vezérl ő hozzáadása a gy ű jteményhez GroupBox1.Controls.Add(signatureCheckBox); A szerkezeti (elrendezési) logika kikapcsolása a megcélzott tároló komponensen. groupBox1.ResumeLayout(true);

50 Példaalkalmazás VezerlokFutasidoben

51 Menü létrehozása 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

52 Gyorsmenü formhoz rendelése futásidőben 1 ContextMenuStrip objektum létrehozása ContextMenuStrip objektum létrehozása this.ContextMenuStrip = new ContextMenuStrip(); this.ContextMenuStrip = new ContextMenuStrip(); Menüpontok elhelyezése a felbukkanó menüben Menüpontok elhelyezése a felbukkanó menüben this.ContextMenuStrip.Items.Add("Új" + this.ContextMenuStrip.Items.Count.ToString()); this.ContextMenuStrip.Items.Add("Új" + this.ContextMenuStrip.Items.Count.ToString()); Eseménykezelő feliratkozása Eseménykezelő feliratkozása this.ContextMenuStrip.ItemClicked += new ToolStripItemClickedEventHandler( cmsGyorsMenü_ItemClicked); this.ContextMenuStrip.ItemClicked += new ToolStripItemClickedEventHandler( cmsGyorsMenü_ItemClicked);

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

54 Példaalkalmazás GyorsMenu

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

56 Validating esemény Azelőtt következik be mielőtt a vezérlő elveszítené az input fókuszt 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) 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 Szabályozhatjuk, hogy mikor kerülhet át a fókusz egy másik vezérlőre

57 e.Cancel használata

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

59 ErrorProvider vezérlő ErrorProvider ErrorProvider 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 a formon keresztül történő felhasználói adatbevitel ellenőrzése során Hibákat jelenít meg egy adathalmazban (dataset) Hibákat jelenít meg egy adathalmazban (dataset) Kulcs tulajdonságok Kulcs tulajdonságok Kulcs metódusok Kulcs metódusok DataSource ContainerControl Icon SetError

60 ErrorProvider Érvénytelen bevitt adat esetén hibaüzenet megjelenítését teszi lehetővé É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 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 Ha a felhasználó az ikon felé helyezi az egérkurzort, egy gyorstippben megjelenik a hibaüzenet

61 Fontos tulajdonságok ContainerControl – ez tartalmazza az ErrorProvider-t ContainerControl – ez tartalmazza az ErrorProvider-t DataSource – egy adathalmazzal kapcsolatos hibát jelenít meg az ErrorProvider DataSource – egy adathalmazzal kapcsolatos hibát jelenít meg az ErrorProvider Icon – választott ikon az alapértelmezett helyett Icon – választott ikon az alapértelmezett helyett

62 Fontos metódusok SetError – meghatározza, hogy melyik vezérlő mellett jelenjen meg az ikon és, hogy mi legyen a hibaüzenet szövege 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

63 Managed Spy


Letölteni ppt "Vizuális programozás Szoftvertechnológia I. Párbeszédablakok és vezérlők C#"

Hasonló előadás


Google Hirdetések