740 likes | 980 Views
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
E N D
Vizuálisprogramozás Windows Forms Párbeszédablakok és vezérlők
Grafikus felület programozása • Windows Forms • Windows PresentationFoundation
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
Eseménykezelés Események
Windows Forms Designer – Automatikusan előállított kódpartial 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
http://msdn.microsoft.com/en-us/library/8w7ed3ba(VS.71).aspx Windows Forms vezérlők
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
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
Fontosabb események • DropDownOpening – mielőtt lenyílna • Click • Mintaalkalmazás
Gyorsmenü • ToolStripMenuItem
Eseménykezelés • Azonos a főmenü eseménykezelésével
Helyezzünk el egy panelt vagy egy csoportablakot a formon (Panel vagy GroupBox) 1 Helyezzünk el további vezérlőket rajta 2 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 GroupBox és Panel vezérlő használata
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ág Leírás MultiColumn Többoszlopos megjelenítés engedélyezése. ScrollAlwaysVisible A görgető sáv mindig látható. SelectionMode Egy vagy több listaelem választható ki egyszerre. SelectedIndex A kiválasztott elem sorszáma (0-tól kezd). vagy -1, ha nincs kiválasztva egy sem. Items.Count A listában szereplő elemek száma. Tulajdonságok
Metódusok Leírás Items.Add/Items.Insert Elemek hozzáadása. Items.Remove/Items.Clear Elemek eltávolítása. Metódusok
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
Szöveg beállítása programból • ssÁllapotsor.Items[0].Text= ”Első”;
Példaalkalmazás Állapotsor és választógomb használata
Egérkezelés • Fontosabb események • 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őredefiniáltpárbeszédablakok Visual Studio .NET-ben • Párbeszédablakokmegjelenítése • DialogResulttulajdonság • Adatbevitelpárbeszédablakonkeresztül
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 Előredefiniáltpárbeszédablakok
Párbeszédablakok megjelenítése • Előredefiniáltpárbeszédablakmegjelenítése private void button1_Click(object sender, System.EventArgs e) { OpenFileDialog1.ShowDialog(); } • Üzenetablakmegjelenítése public void PerformCalculations() { MessageBox.Show ("Művelet végrehajtva", "Jelentés",MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk); }
A visszatérési érték adja meg, hogy mely gombbal zárta be az ablakot a felhasználó Példa DialogResult.Cancel jelzi, hogy a felhasználó a Mégse gombon kattintott 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ó. DialogResult DialogResult
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 Adatbevitel párbeszédablakon keresztül Eredmények kiolvasása a párbeszédablakból és felhasználásuk 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: TextBoxkomponenshasználata • Az ErrorProvider vezérlő használata • Példaalkalmazás: TextBoxkomponenshasználataErrorProvider-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