1 / 29

Události (1)

Události (1). Členy třídy umožňující objektu nebo třídě reagovat na zprávy (události) Program může definovat metody, které mají za úkol zpracovat příchozí zprávy, např.: stisknutí klávesy stisknutí tlačítka myši pohyb myši apod.

zanna
Télécharger la présentation

Události (1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Události (1) • Členy třídy umožňující objektu nebo třídě reagovat na zprávy (události) • Program může definovat metody, které mají za úkol zpracovat příchozí zprávy, např.: • stisknutí klávesy • stisknutí tlačítka myši • pohyb myši • apod. • Metoda realizující zpracování (obsluhu) zprá-vy (reagující na zprávu) se označuje jako tzv. event handler (obslužná metoda)

  2. Události (2) • Parametry obslužné metody musí odpovídat definici prototypu funkce, která se nazývá delegát (delegate, zástupce) • Definice: • delegáta se provádí pomocí delegate • události pomocí klíčového slova event • Metod obsluhujících události může být více a jejich návratovým typem je typ void • Odkaz na obslužnou metodu se: • do události vkládá pomocí operátoru += • z události odebírá pomocí operátoru -=

  3. Částečné třídy (1) • Jazyk C# dovoluje rozdělit zdrojový kód tří-dy do více samostatných souborů • Používáno velmi často při tvorbě aplikací vy-užívajících rozhraní Windows Forms nebo Windows Presentation Foundation (WPF): • část zdrojového kódu třídy, kterou programátor může ručně upravovat, je uložena v souboru od-děleném od kódu, který generuje přímo Visual Studio • Jestliže je třída rozdělena do více souborů, musí jednotlivé části třídy (v každém soubo-ru) být označeny klíčovým slovem partial

  4. Částečné třídy (2) • Příklad (uloženo např. v souboru Prog1.cs):partial class Ctverec{privateintstrana; public Ctverec(int pocatecniStrana) { strana = pocatecniStrana; } publicintGetStrana(){ returnstrana;}}

  5. Částečné třídy (3) • Příklad (uloženo např. v souboru Prog2.cs):partial class Ctverec{publicint UrciObsah(){ returnstrana*strana;}publicint UrciObvod(){ return4*strana;}}

  6. Windows Forms • Rozhraní pro programování grafických apli-kací • Součást MS .NET Framework • Poskytuje sadu tříd umožňujících přístup ke standardním ovládacím prvkům operačního systému MS Windows (okno, tlačítko, menu, editační prvek atd.) • Aplikace psané pomocí Windows Forms jsou událostmi řízené

  7. Hierarchie tříd Object 1 2 3 4 MarshalByRefObject ListControl ComboBox Component ListBox Control ScrollableControl PictureBox ContainerControl ScrollBar Form StatusBar ButtonBase ToolBar Button Menu ContextMenu CheckBox RadioButton MainMenu Label MenuItem TextBoxBase Graphics TextBox Application 1 2 3 4 MessageBox

  8. Třída Application(1) • Definována ve jmenném prostoru:System.Windows.Forms • Poskytuje metody, vlastnosti a události umož-ňující řídit běh aplikace • Všechny členy třídy Application jsou sta-tické • Poznámka: • třída Application je definována s modifikáto-rem sealed není možné definovat třídu, která by byla jejím potomkem

  9. Třída Application(2) • Vlastnosti: • ExecutablePath: • vrací název souboru (včetně cesty), který spustil ap-likaci • OpenForms: • vrací kolekci otevřených formulářů, které aplikace vlastní • StartupPath: • vrací cestu k souboru, který spustil aplikaci (bez jmé-na souboru)

  10. Třída Application(3) • Metody: • Restart: • ukončí aplikaci a provede její opětovné spuštění • Run: • zahájí standardní cyklus očekávající příchod zprávy (události) • je-li jejím parametrem formulář (okno), pak se pro-vede jeho zobrazení a metoda Run nevrátí řízení, do-kud daný formulář není uzavřen • typicky používána pro zobrazení hlavního okna apli-kace

  11. Třída Control(1) • Definována ve jmenném prostoru:System.Windows.Forms • Základní třída pro ovládací prvky systému MS Windows (komponenty s vizuální repre-zentací), např.: • formuláře (okna) • tlačítka • editační pole • rolovací lišty • Implementuje základní podporu pro odpoví-dající objekty

  12. Třída Control(2) • Vlastnosti: • BackColor: • udává barvu pozadí ovládacího prvku • BackgroundImage: • specifikuje obrázek zobrazený na pozadí ovládacího prvku (*.gif, *.jpg, *.bmp, *.wmf, *.png) • ClientSize: • udává velikost (výšku a šířku) klientské části ovláda-cího prvku • ContextMenuStrip: • určuje kontextové menu zobrazené když uživatel stiskne pravé tlačítko myši

  13. Třída Control(3) • Cursor: • určuje kurzor myši, který bude nad ovládacím prv-kem použitý • Enabled: • udává, zda je ovládací prvek aktivní nebo nikoliv (grayed) • Focused: • zjišťuje, zda má ovládací prvek vstupní zaměření (focus) • Font: • specifikuje font textu použitého v ovládacím prvku • ForeColor: • určuje barvu popředí ovládacího prvku (např. u tla-čítka se jedná o barvu textu) • Handle: • vrací popisovač (handle) daného ovládacího prvku

  14. Třída Control(4) • Height: • výška ovládacího prvku • Left: • x-ová souřadnice levého horního rohu ovládacího prvku • Location: • souřadnice levého horního rohu ovládacího prvku • Name: • jedinečné jméno ovládacího prvku • Size: • výška a šířka ovládacího prvku • TabIndex: • určuje pořadí komponenty, ve kterém při stisku klá-vesy TAB získává vstupní zaměření (focus)

  15. Třída Control(5) • TabStop: • určuje, zda uživatel může ovládací prvek vybrat po-mocí klávesy TAB • Text: • specifikuje text (titulek) ovládacího prvku • Top: • y-ová souřadnice levého horního rohu ovládacího prvku • Visible: • udává, zda je (není) ovládací prvek viditelný • Width: • šířka ovládacího prvku • Metody: • Focus: • nastavuje ovládacímu prvku vstupní zaměření (focus)

  16. Třída Control(5) • Hide: • skryje ovládací prvek • ekvivalentní nastavení vlastnosti Visible na hod-notu false • Invalidate: • dává požadavek na překreslení ovládacího prvku • Refresh: • vynucuje překreslení ovládacího prvku (ekvivalentní vyvolání metod Invalidate + Update) • Show: • učiní ovládací prvek viditelný • ekvivalentní nastavení vlastnosti Visible na hod-notu true

  17. Třída Control(6) • Update: • provede překreslení ovládacího prvku (pouze pokud byl předtím dán požadavek pomocí Invalidate) • Události: • Click: • dojde k ní při klepnutí primárním (levým) tlačítkem na ovládací prvek • DoubleClick: • dojde k ní při double-clicku primárním (levým) tla-čítkem myši na ovládací prvek • Enter: • dojde k ní v době, kdy je ovládací prvek aktivován

  18. Třída Control(7) • KeyPress: • dojde k ní při stisku klávesy a je poslána ovládacímu prvku mající vstupní zaměření (focus) • je vyvolána pouze v případě, že se jedná o klávesu reprezentující znak • pro klávesy, které nereprezentují znak je zapotřebí provést obsluhu události KeyDown, popř. KeyUp • Leave: • nastává v okamžiku, kdy vstupní zaměření opouští ovládací prvek • MouseDown: • dojde k ní když kurzor myši je nad ovládacím prv-kem a je proveden stisk některého tlačítka myši

  19. Třída Control(7) • MouseMove: • dojde k ní při pohnutí myší nad ovládacím prvkem • MouseUp: • dojde k ní když kurzor myši je nad ovládacím prvkem a je provedeno uvolnění stisknutého tlačítka myši • Paint: • dojde k ní v době, kdy je ovládací prvek překreslo-ván • Resize: • nastává v okamžiku, kdy se u ovládacího prvku mění jeho velikost • TextChanged: • dojde k ní při změně textu ovládacího prvku

  20. Třída Form(1) • Definována ve jmenném prostoru:System.Windows.Forms • Reprezentuje standardní okna (formuláře) aplikace • Třída Form může být využita pro vytvoření a správu např.: • hlavního okna aplikace • dialogových oken • oken pro aplikace MDI (Multiple Document Interface)

  21. Třída Form(2) • Vlastnosti: • AcceptButton: • specifikuje tlačítko v okně, které je stisknuto v okam-žiku, kdy uživatel stiskne klávesu Enter • ActiveControl: • nastavuje (zjišťuje), který ovládací prvek v okně bude mít (má) vstupní zaměření (focus) • zděděno od třídy ContainerControl • ActiveForm: • vrací aktuální (aktivní) formulář aplikace • ActiveMdiChild: • vrací aktuální (aktivní) formulář v aplikaci MDI

  22. Třída Form(3) • CancelButton: • specifikuje tlačítko v okně, které je stisknuto v okam-žiku, kdy uživatel stiskne klávesu Esc • ControlBox: • specifikuje, zda-li má být v titulním proužku zobra-zená ikona se systémovým menu • FormBorderStyle: • udává vzhled a chování okraje okna (např. SizableFixedSingle, Fixed3D, FixedDialog) • HelpButton: • specifikuje, zda-li má být v titulním proužku zobra-zeno tlačítko pro nápovědu • Icon: • specifikuje ikonu formuláře (okna) – *.ico

  23. Třída Form(4) • KeyPreview: • určuje, zda má formulář přijímat stisknuté klávesy dříve než ovládací prvek mající vstupní zaměření (focus) • MainMenuStrip: • specifikuje hlavní menu formuláře (okna) • MaximizeBox: • specifikuje, zda-li má být v titulním proužku zobrazeno tlačítko pro maximalizaci • MinimizeBox: • specifikuje, zda-li má být v titulním proužku zobrazeno tlačítko pro minimalizaci • StartPosition: • určuje počáteční pozici okna (např. CenterScreen, Manual, WindowsDefaultLocation)

  24. Třída Form(5) • WindowState: • udává stav okna (Normal, Minimized, Maximized) • Metody: • Activate: • aktivuje okno (předává mu vstupní zaměření) • Close: • provede uzavření okna • LayoutMdi: • uspořádá dceřiná okna aplikace MDI (Cascade, TileHorizontal, TileVertical, ArrangeIcons) • ShowDialog: • zobrazí okno jako modální dialogové okno

  25. Třída Form(6) • Události: • Activated: • vzniká v době, kdy se formulář (okno) stává aktivním • Deactivate: • vzniká při deaktivaci okna (ztrátě vstupního zaměření) • FormClose: • nastává poté, kdy je formulář (okno) uzavřen • FormClosing: • nastává v okamžiku, kdy se formulář (okno) uzavírá • Load: • nastává před prvním zobrazením okna • Shown: • nastane, když je okno poprvé zobrazeno

  26. Třída MessageBox (1) • Definována ve jmenném prostoru:System.Windows.Forms • Zobrazuje okno, které může obsahovat: • text • tlačítka • symboly (ikony) • Pro zobrazení MessageBoxu se používá me-toda Show, která: • je definovaná 21 různými způsoby (overloading) • vrací hodnotu typu DialogResult vyjadřující, kterým tlačítkem byl MessageBox ukončen

  27. Třída MessageBox (2) • Tlačítka jsou typu MessageBoxButtons, který definuje konstanty vyjadřující jaká tlačítka budou zobrazena (OK, OKCancel, AbortRetryIgnore, YesNoCancel, YesNo, RetryCancel) • Ikony jsou typu MessageBoxIcon, který definuje následující konstanty: None, Hand, Question, Exclamation, Asterisk, Stop, Error, Warning, Information

  28. Třída Button • Definována ve jmenném prostoru:System.Windows.Forms • Reprezentuje tlačítko • Vlastnosti: • DialogResult: • určuje, zda (a jak) tlačítko uzavírá svůj modální rodi-čovský formulář • hodnota DialogResult je vrácena metodou ShowDialog • Metody: • PerformClick: • simuluje uživatelský stisk klávesy

  29. Třída Label • Definována ve jmenném prostoru:System.Windows.Forms • Ovládací prvek dovolující zobrazit textovou informaci • Vlastnosti: • Text: • specifikuje zobrazený text • Poznámka: • je-li zapotřebí zobrazit číselný údaj, pak je nez-bytné jej nejprve převést na řetězec (pomocí metody ToString nebo třídy Convert)

More Related