290 likes | 459 Views
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.
E N D
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)
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 -=
Čá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
Čá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;}}
Čá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;}}
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é
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
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
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)
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
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
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
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
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)
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)
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
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
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
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
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)
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
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
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)
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
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
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
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
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
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)