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

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

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

Podobné prezentace


Prezentace na téma: "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í."— Transkript prezentace:

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) 05/04/2017

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 -= 05/04/2017

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 05/04/2017

4 Částečné třídy (2) Příklad (uloženo např. v souboru Prog1.cs): partial class Ctverec { private int strana; public Ctverec(int pocatecniStrana) { strana = pocatecniStrana; } public int GetStrana() { return strana; } } 05/04/2017

5 Částečné třídy (3) Příklad (uloženo např. v souboru Prog2.cs): partial class Ctverec { public int UrciObsah() { return strana*strana; } public int UrciObvod() { return 4*strana; } } 05/04/2017

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é 05/04/2017

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

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 05/04/2017

9 Třída Application (2) Vlastnosti: ExecutablePath: OpenForms:
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) 05/04/2017

10 Třída Application (3) Metody: Restart: Run:
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 05/04/2017

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 05/04/2017

12 Třída Control (2) Vlastnosti: BackColor: BackgroundImage: ClientSize:
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 05/04/2017

13 Třída Control (3) Cursor: Enabled: Focused: Font: ForeColor: Handle:
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 05/04/2017

14 Třída Control (4) Height: Left: Location: Name: Size: TabIndex:
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) 05/04/2017

15 Třída Control (5) Metody: TabStop: Text: Top: Visible: Width: Focus:
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) 05/04/2017

16 Třída Control (5) Hide: Invalidate: Refresh: Show:
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 05/04/2017

17 Třída Control (6) Události: Update: Click: DoubleClick: Enter:
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 05/04/2017

18 Třída Control (7) KeyPress: Leave: MouseDown:
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 05/04/2017

19 Třída Control (7) MouseMove: MouseUp: Paint: Resize: TextChanged:
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 05/04/2017

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) 05/04/2017

21 Třída Form (2) Vlastnosti: AcceptButton: ActiveControl: ActiveForm:
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 05/04/2017

22 Třída Form (3) CancelButton: ControlBox: FormBorderStyle: HelpButton:
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ř. Sizable FixedSingle, 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 05/04/2017

23 Třída Form (4) KeyPreview: MainMenuStrip: MaximizeBox: MinimizeBox:
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) 05/04/2017

24 Třída Form (5) Metody: WindowState: Activate: Close: LayoutMdi:
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 05/04/2017

25 Třída Form (6) Události: Activated: Deactivate: FormClose:
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 05/04/2017

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 05/04/2017

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 05/04/2017

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 05/04/2017

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) 05/04/2017


Stáhnout ppt "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í."

Podobné prezentace


Reklamy Google