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

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Osztály leszármaztatás
BPS Web 2.0 Felhasználói kézikönyv. A szerkesztő főoldala A bejelentkezett felhasználóA szerkesztő főmenürendszere Stílusformázások Nyelv- és nézetváltás.
A Windows grafikus felülete
Az algoritmizálás oktatás egy lehetséges útja: Visual Basic
PowerPoint program A PowerPoint programot nyissuk meg a Start menüből.
Operációs rendszerek Beállítások.
Mellár János 3. óra Szeptember 16. v
Számítógépes ismeretek 5. óra
Felhasználó barátság eszközei
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Stílus, mesteroldal, témák
Programozás II. 3. Gyakorlat C++ alapok.
Tömbök ismétlés Osztályok Java-ban Garbage collection
Szövegszerkesztési szabályok
Windows operációs rendszer
Címsor menüsor ikonsor munkaterület (ikonsor) állapotsor.
A Windows grafikus felülete
Bekezdésformázás.
A körlevél készítésének menete
V 1.0 Szabó Zsolt, Óbudai Egyetem, Haladó Programozás Eseménykezelés ismétlés Névtelen metódusok (anonymous methods)
Táblázatkezelés Az Excel.
Delphi programozás Delphi programozás SRTNB előadás - Borland Delphi – fontosabb komponensek tárgyalása Nagyváradi Anett.
Delphi programozás alapjai Nagyváradi Anett PTE PMMK MIT.
,,Én így tanítanám az informatikát”
Webszerkesztés Űrlapok a HTML-ben. Űrlap létrehozása Űrlapunk tartalma a … elemek között fog helyetfoglalni Egy lapon több űrlap is elhelyezhető Több.
VFP Form programozás Form szerkesztő elemei vezérlő elemek
Microsoft Access Vezérlőelemek.
Microsoft Access Űrlapok tervezése.
V 1.0 OE-NIK HP 1 Programozási Paradigmák és Technikák Eseménykezelés Névtelen metódusok (anonymous methods)
Az Excel táblázatkezelő
Vizuális alkalmazások a FoxProban Páll Éva Boglárka.
Űrlapok.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Delphi Készítette: Rummel Szabolcs Elérhetőség:
Visual Basic 2008 Express Edition
Visual Basic 2008 Express Edition
V 1.0 Programozás III. További ablakok készítése Továbbított események.
RAD Studio XE5: menük felépítése
Webprogramozó tanfolyam Űrlapok (form-ok). Űrlapok a HTML-ben Biztosan mindenki találkozott már vele – Űrlap példapélda Felhasználási lehetőségei – Regisztráció,
Számítógépes grafika I. AUTOCAD alapok
Számítógépes grafika I. AUTOCAD alapok 3. előadás.
Az Office 2007 új grafikus felülete
A Visual Basic és a programozás oktatása
Vizuális programozás Szoftvertechnológia I.
User Profiles Endrődi Tamás (MCT, MCP, MCITP) GDF Informatikai Intézet vezetője SZÁMALK Oktatóközpont.
SZÖVEGSZERKESZTÉS II. SZÖVEGSZERKESZTÉS LÉPÉSEI
Szebb és használhatóbb programok Vezérlőelemek dinamikus felhelyezése.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Windows Forms alkalmazás készítése Czigléczky Gábor 2009.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
LA C++ programozás Windows környezetben Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 24./0. lA menü elkészítése lA programkód megírása.
Táblák létrehozása és feltöltése adatokkal Rendezés Szűrés.
Információ és kommunikáció
Alkalmazásfejlesztés gyakorlat
Neumann János Informatikai Kar
Programozás III. Felhasználóifelület-elemek fontosabb tulajdonságai, eseményei, metódusai Preview események.
ListBox CheckedListBox TextBox
Szövegszerkesztési alapfogalmak
Windows és Linux Word 1 (1983) … Word for Windows (1989)
A Panel, Scroll Bar és a Combo box tulajdonságai
ComboBox A listák nagy helyet foglalnak a formokon, és az általuk felkínált elemek nem bővíthetőek a felhasználó által. Ezen problémák megoldására használhatjuk.
Neumann János Informatikai Kar
MS Office Word 2010 Szövegszerkesztés.
Táblázatkezelés Az Excel.
Folyamatok.
B M Java Programozás 5. Gy: Java alapok IT A N Adatkezelő 1.rész
MS Office Word 2010 Szövegszerkesztés.
Előadás másolata:

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

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

Windows Forms

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

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

Eseménykezelés Események 6

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

Saját kód – partial class

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.

Windows Forms vezérlők http://msdn.microsoft.com/en-us/library/8w7ed3ba(VS.71).aspx Windows Forms vezérlők

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

A háttérben keletkező kód

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

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

Toolbox beállítása 15

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

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

Menü tulajdonságok használata

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

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

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

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

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

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

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

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;

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

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

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

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

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

Á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

Állapotsor elemeinek beállítása

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

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

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

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

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

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); }

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ó.

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); } …

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

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

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

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

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

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

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

e.Cancel használata

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

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

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

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

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

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

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

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

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();

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);

Példaalkalmazás VezerlokFutasidoben

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

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);

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"); }

Példaalkalmazás GyorsMenu

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

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

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

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

MDI alkalmazás létrehozása

Drag & Drop

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);

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