Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

YOUR LOGO Win Forms Slide od Martin Osovský. YOUR LOGO Validace dat  pro správné použití dialogu je nutné data před nastavením DialogResult u na OK validovat,

Podobné prezentace


Prezentace na téma: "YOUR LOGO Win Forms Slide od Martin Osovský. YOUR LOGO Validace dat  pro správné použití dialogu je nutné data před nastavením DialogResult u na OK validovat,"— Transkript prezentace:

1 YOUR LOGO Win Forms Slide od Martin Osovský

2 YOUR LOGO Validace dat  pro správné použití dialogu je nutné data před nastavením DialogResult u na OK validovat, aby bylo na obsah příslušných vlastností spolehnutí  každý ovládací prvek má událost Validating, v jejímž handleru se provede validace  událost Validating se vyvolá, když má prvek nastavenu vlastnost CausesValidation na true a ztratí fokus ve prospěch prvku se stejným nastavením  handler má parametr typu CancelEventArgs, jejíž vlastnost Cancel se při neúspěchu nastaví na true  pokud se validace povede, vyvolá se událost Validated

3 YOUR LOGO Validace dat  vložená data v ovládacím prvku se obvykle zkontrolují pomocí regulárního výrazu (metoda IsMatch)  je možno použít prvek MaskedTextBox, který má ve vlastnosti Mask řetězec s požadovaným formátem, ze jehož znaky se zobrazí nápovědné znaky, např. 00->L<LL-0000 : 12-Jan-1997 (__-___-____)

4 YOUR LOGO Validace dat  na formuláři může být komponenta ErrorProvider, která umožňuje informovat uživatele o chybě  metoda SetError má parametr typu komponenta, jejíž hodnotu se nepodařilo nastavit a řetězec  když je třeba kontolovat více ovládacích prvků, použije se kontejnerový prvek jako třeba GroupBox

5 YOUR LOGO Validace dat  validaci lze uměle vyvolat pomocí metod formuláře Validate a ValidateChildren  ValidateChildren má parametr, který umožňuje omezit, které druhy ovládacích prvků se mají validovat  vlastnost AutoValidate umožňuje nastavit, aby se validovalo pouze po zavolání těchto metod (a nikoliv, když ovládací prvky ztratí fokus) hodnotou AutoValidate.EnableAllowFocusChange

6 YOUR LOGO Kreslení  podporu kreslení zajišťují třídy ze jmenného prostoru System.Drawing  základní třídou je třída Graphics  ke kreslení na formulář je nutno si vyžádat instanci třídy Graphics voláním metody CreateGraphics

7 YOUR LOGO Událost Paint  aby se nakreslené objekty správně překreslovaly při změnách formuláře je třeba kreslení provádět v obsluze události Paint  událost Paint se vyvolá vždy, když se formuláš překresluje  lze ji vyvolat v programu metodami Invalidate, Update nebo Refresh  voláním metody SetStyle formuláře s parametrem ControlStyles.ResizeDraw lze zařídit, aby obrázek s formulářem měnil i velikost (událost Paint se vyvolá i při přesunu)

8 YOUR LOGO Barvy, štětce, pera...  barvy jsou reprezentovány strukturou Color, která obsahuje -statické vlastnosti pro známé barvy ( YellowGreen ) -metody pro vytváření barev pomocí různých reprezentací (např. FromArgb ) -metoda FromKnownColor s enumem KnownColors (systémové barvy, např. Highlight) -třída SystemColors

9 YOUR LOGO Štětce (brushes)  štětce slouží k vyplňování uzavřených objektů barvami, bitmapami nebo vzory  různé druhy reprezentované různými třídami -SolidBrush: inicializován barvou -TextureBrush: inicializován bitmapou (objekt Bitmap) -HatchBrush: inicializován některým dvoubarevným vzorem (typ HatchStyle) a dvěma barvami -LinearGradientBrush: plynulý přechod mezi dvěma barvami -PathGradientBrush: přechod podél cesty

10 YOUR LOGO Pera (pens)  kreslení čar, polygonů a tvarů  je možno nastavovat celou řadu vlastností jako -štětec ( Brush ) -konce čar ( EndCap, StartCap ) -čárování nebo čerchování ( DashStyle, DashPattern ) -zarovnání, spoje a podobně

11 YOUR LOGO Cesty a tvary  tvary se kreslí pomocí metod třídy Graphics -metody DrawXXX: nakreslí příslušný tvar nevyplněný -metody FillXXX: nakreslí tvar, který je možno vyplnit vyplněný příslušným štětcem  k disposici jsou například tvary Arc, Bezier, Curve, Lines (neuzavřené) a Ellipse, Rectangle, Polygon, Pie a ClosedCurve (uzavřené)  kreslí se na základě nejrůznějších specifických vlastností

12 YOUR LOGO Cesty  cesta, objekt typu GraphicsPath je v podstatě kontejner pro jednu nebo více podcest (uzavřený tvar nebo posloupnost spojených čar či oblouků)  připomíná Graphics, ale -není možné do ní kreslit na jakékoliv pozice -je nutno ji vykreslit na objekt Graphics metodou DrawPath (nemá vlastní vykreslovací prostor)  tvary se do ní přidávají metodami tvaru AddXXX  metody StartFigure a CloseFigure

13 YOUR LOGO Obrázky  jsou reprezentovány zejména třídou System.Drawing.Image  instanci této třídy je možné vytvořit například statickou metodou FromFile  obrázek lze vykreslit metodou DrawImage třídy Graphics  této metodě je možné předávat parametry, které obrázek vykreslí nějak transformovaný (do nějakého tvaru, zvětšený nebo zmenšený ap.)  nějaké transformace je také možné provádět přímo na obrázku (metoda RotateFlip aj. )

14 YOUR LOGO Fonty, řetězce  kreslení řetězců se provádí metodou DrawString  té se předá řetězec, třída reprezentující font, štětec a nakonec poloha textu  fonty jsou reprezentovány třídou FontFamily (např. Times New Roman), jednotlivé konkrétní tvary (jako TMR bold 10b) pak třídou Font

15 YOUR LOGO Data binding  některé ovládací prvky zobrazují data uložená v jiných objektech  data lze zobrazovat automaticky pomocí spojování prvků s datovými zdroji (data sources)  spojovat lze -vlastnosti ovládacích prvků sjednoduchými složkami zdrojů (objektů): simple binding -nebo ovládací prvky s kolekcemi: complex binding -jednostranně nebo oboustranně

16 YOUR LOGO Simple binding  každý ovládací prvek obsahuje kolekci objektů typu Binding, které obsahují vazbu některé jejich vlastnosti ke složce nějakého objektu  tato kolekce je ve vlastnosti DataBindings  třída Binding má konstruktor se třemi parametry -jméno vlastnosti ovládacího prvku ( Property ) -referenci na objekt zroje ( DataSource ) -tzv. navigation path ke složce zdroje ( DataMember )

17 YOUR LOGO Simple binding  navigation path je řetězec jmen oddělených tečkou  představuje složku nebo vlastnost zdroje, případně, složku objektu, který je obsažen v dané složce atd. “Stars.Planets.Moons.Mass”  je-li zdrojem například DataSet, může to být jméno tabulky a jméno sloupce “Products.ProductName”

18 YOUR LOGO Simple Binding  pokud je zdrojem kolekce, je prvek svázán se složkou jednoho objektem v kolekci  formulář má složku BindingContext, která pro každou vazbu obsahuje objekt odvozený od typu BindingManagerBase -CurrencyManager: obaluje skutečný zdroj, vrací jeden prvek a umožňuje mezi prvky přecházet -PropertyManager: pokud zdroj není kolekce, obsahuje prostě příslušný objekt

19 YOUR LOGO Binding Context  CurrencyManager -má složku Position: index aktuálního objektu -Count: celkový počet -Current -AddNew  dá se získat z vlastnosti BindingContext pomocí indexeru, který má za parametr zdroj dat, případně navigation path ke složce  ke každé kolekci je jenom jeden kontext

20 YOUR LOGO Complex binding  některé ovládací prvky mohou být propojeny s kolekcí (ListBox, ComboBox, DataGridView), za tím účelem mají speciální složky -DataSource: objekt kolekce -DisplayMember: složka prvku kolekce, která se má zobrazit -ValueMember: hodnota, která je svázána s vybranou položkou (SelectedValue)

21 YOUR LOGO Complex binding  běžné kolekce nepodporují notifikace o změnách v kolekci, což způsobuje, že se tyto změny neprojevují na provázaných komponentách  IBindingList a IBindingList : rozhraní umožňující obousměrnou vazbu  BindingSource: komponenta, která umožňuje zapouzdřit již existující kolekci

22 YOUR LOGO DataGridView  tabulková komponenta pro zobrazování dat  objekt nesoucí data se k ní přiřadí vlastností DataSource, resp. DataMember  může zobrazovat data z -pole -DataTable, DataView -DataSet, DataViewManager -IList, IListSource -jakákoliv generická kolekce

23 YOUR LOGO Poznámky k DataGridView  u pole je se v tabulce zobrazí první vlastnost každé položky (délka u řetězců!)  u tabulky v DataSetu je se DataSource nastaví na dataset a DataMember na jméno tabulky  umí navigovat přes relace v datasetu  složky, které nechceme zobrazovat u generických kolekcí je možno označit atributem [Browsable(False)]

24 YOUR LOGO DataGridView  sloupce se dají vytvořit automaticky podle jmen a datových typů položek prvků datového zdroje  nebo se dají vytvořit ručně pomocí tříd dědících od třídy DataGridViewColumn a jejich vlastností (např. DataGridViewButtonColumn)  sloupce jsou ve vlastnosti Columns třídy DataGridView

25 YOUR LOGO Vícevláknová rozhraní  dlouho trvající blokující operace mohou způsobit nepříjemné zablokování aplikace  řešení je přesunout tyto operace z UI vlákna aplikace do tzv. pracovního vlákna  pracovní vlákno, ale nemůže přistupovat přímo k prvkům uživatelského rozhraní  řešením je použít thread-save metody třídy Form -Invoke, BeginInvoke, EndInvoke -CreateGraphics

26 YOUR LOGO Vícevláknová rozhraní  existuje pomocná komponenta BackgroundWorker  metoda RunWorkerAsync: inicializuje a spustí příslušnou operaci  delegáti (události) -DoWork -ProgressChanged -RunWorkerCompleted

27 YOUR LOGO Vícevláknová rozhraní  komunikace s UI vláknem se provádí metodou ReportProgress (jen když je vlastnost WorkerReportsProgress na true)  zavolání této metody vyvolá událost, na niž je možno v UI vlákně reagovat, předaná informace (číslo nebo jakýkoliv objekt) je ve vlastnosti UserState nebo ProgressPercentage třídy ProgressChangedEventArgs


Stáhnout ppt "YOUR LOGO Win Forms Slide od Martin Osovský. YOUR LOGO Validace dat  pro správné použití dialogu je nutné data před nastavením DialogResult u na OK validovat,"

Podobné prezentace


Reklamy Google