Upload
zanna
View
52
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
23-04-21 1
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
23-04-21 2
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
23-04-21 3
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 tlačítka
23-04-21 4
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)
23-04-21 5
Třída TextBox (1)• Definována ve jmenném prostoru:System.Windows.Forms
• Ovládací prvek dovolující zobrazit a zadat textovou informaci
• Vlastnosti:– CharCase:
• specifikuje, zda-li zadaná informace bude automatic-ky konvertována na velká (malá) písmena nebo nikoliv
– Lines:• udává řádky textu v TextBoxu• používané zejména u víceřádkových TextBoxů
23-04-21 6
Třída TextBox (2)– MaxLength:
• maximální počet znaků, které lze zadat (0 značí bez omezení)
– Multiline:• určuje, zda-li do TextBoxu může být zadáno více
řádků– PasswordChar:
• maskovací znak, který se bude zobrazovat místo za-dávaných znaků
– ReadOnly: • značí TextBox určený pouze ke čtení
– SelectionLength:• počet znaků v zaznačeném textu
23-04-21 7
Třída TextBox (3)– SelectionStart:
• počáteční pozice aktuálně zaznačeného textu– SelectedText:
• specifikuje aktuálně zaznačený text– Text:
• udává zadaný (zobrazovaný) text • číselné informace je nutné převádět na (z) řetězce(ů)
– TextAlign:• specifikuje zarovnání zadávaného (zobrazeného)
textu– TextLength:
• délka celého textu
23-04-21 8
Třída TextBox (4)• Metody:
– Clear: • smaže zobrazený (zadaný) text
– Copy: • zkopíruje zaznačený text do schránky (Clipboardu)
– Cut: • zkopíruje zaznačený text do schránky (Clipboardu)
a následně jej v TextBoxu smaže– Paste:
• vloží text z Clipboardu do prvku TextBox (náhra-dou za zaznačenou část)
– Undo:• vrátí nazpět poslední provedenou operaci
23-04-21 9
Práce s grafikou (1)• Windows Forms při práci s grafikou využí-
vají GDI+ (Graphics Device Interface+)
• GDI+ je následník rozhraní GDI, které je zod-povědné za reprezentaci grafických objektů a jejich zasílání na výstupní zařízení (monitor, tiskárna apod.)
• GDI realizuje operace jako jsou např.:– kreslení úseček a přímek– zobrazování fontů– správa palet barev
23-04-21 10
Práce s grafikou (2)
• GDI+ se poprvé objevuje u MS Windows XP a umožňuje navíc např.:– zobrazování 2D grafiky s využitím antialiasingu– používání souřadnic v plovoucí desetinné čárce– gradientní přechody různých odstínů barev– používání moderních grafických formátů
(*.jpg, *.png)– skládání afinních transformací– práci s barvami v modelu ARGB
23-04-21 11
Třída Graphics (1)• Definována ve jmenném prostoru:System.Drawing
• Poskytuje abstraktní povrch, na kterém je možné vykreslovat grafické informace
• Poznámka: – třída Graphics je definována s modifikátorem sealed není možné definovat její potomky
• Pro zpřístupnění vlastností a metod třídy Graphics je zapotřebí získat její objekt
• Konstruktor třídy Graphics není veřejný a tudíž jej nelze pro vytvoření objektu využít
23-04-21 12
Třída Graphics (2)• Objekt třídy Graphics lze získat např.:
– prostřednictvím parametru, který je předáván ob-služné metodě události Paint (parametr je typu PaintEventArgs)
– pomocí volání metody CreateGraphics ovlá-dacího prvku (např. formuláře), v němž bude vy-kreslování realizováno:
• objekt třídy Graphics by měl být využíván pouze v metodě, která jej (pomocí CreateGraphics) získala
• třída Graphics implementuje rozhraní IDisposab-le a po ukončení kreslení by program měl volat metodu Dispose a tím objekt třídy Graphics uvolnit
23-04-21 13
Třída Graphics (3)• program by měl zaručit, že k uvolnění objektu třídy Graphics dojde i v případě vzniku výjimky příka-zy využívající tento objekt by měly být v chráněnném bloku (try) a ve sdruženém bloku finally by mělo být provedeno volání metody Dispose
• příklad: Graphics g = HlOkno.CreateGraphics(); try { }
finally { g.Dispose(); }
Kreslení pomocí g
23-04-21 14
Třída Graphics (4)• korektní vyvolání metody Dispose lze u tříd imple-
mentujících rozhraní IDisposable zabezpečit i po-mocí klíčového slova using, za nímž se zapíše defi-nice proměnné společně s vytvořením instance dané třídy
• příklad: using (Graphics g =
HlOkno.CreateGraphics()) { }
Kreslení pomocí g
23-04-21 15
Třída Graphics (5)• Metody:
– Clear:• provede vymazání vykreslovacího povrchu specifiko-
vanou barvou– Dispose:
• uvolní zdroje používané objektem třídy Graphics– DrawArc:
• vykreslí eliptický (kruhový) oblouk– DrawBezier:
• vykreslí Bézierovu křivku– DrawEllipse, FillEllipse:
• vykreslí elipsu (kružnici) nebo vyplněnou elipsu (kruž-nici)
23-04-21 16
Třída Graphics (6)– DrawImage:
• vykreslí obrázek (např. ve formátu *.jpg)– DrawLine:
• vykreslí úsečku spojující dva body– DrawLines:
• vykreslí sérii na sebe navazujících úseček– DrawPolygon, FillPolygon:
• vykreslí mnohoúhelník nebo vyplněný mnohoúhelník– DrawRectangle, FillRectangle:
• vykreslí obdélník (čtverec) nebo vyplněný obdélník (čtverec)
– DrawString:• zobrazí text specifikovaný řetězcem
23-04-21 17
Třída Graphics (7)– RotateTransform:
• aplikuje transformaci pro otočení– ScaleTransform:
• aplikuje transformaci pro změnu měřítka– TranslateTransform:
• aplikuje transformaci pro posun počátku souřadnic
• Při vykreslování jsou využívány instance:– třídy Pen – kreslící pero– potomků třídy Brush – štětec – třídy Font – písmo
• Poznámka:– nově vytvořené instance tříd Pen, Brush a Font
by měly být uvolňovány pomocí metody Dispose
23-04-21 18
Třída Pen• Definována ve jmenném prostoru:System.Drawing
• Definuje objekt, který slouží pro vykreslování úseček, křivek a obvodů útvarů (definována s modifikátorem sealed)
• Vlastnosti:– Color:
• specifikuje barvu kreslícího pera– DashStyle:
• udává styl kreslícího pera (např. plná čára, přerušovaná čára, tečkovaná čára apod.)
– Width:• specifikuje šířku (tloušťku) kreslícího pera
23-04-21 19
Třída Brush (1)• Definována ve jmenném prostoru:System.Drawing
• Abstraktní třída (nelze vytvořit její instanci), která slouží jako společný předek pro další třídy definující různé druhy štětců
• Štětce jsou používány pro vyplňování uzavře-ných útvarů (např. obdélník, elipsa apod.)
• Mezi potomky třídy Brush patří např.:– SolidBrush:
• definuje jednobarevný štětec (pomocí vlastnosti Color)
23-04-21 20
Třída Brush (2)– TextureBrush:
• definuje štětec, který pro vyplňování uzavřených útva-rů používá obrázek (texturu) specifikovaný v době vo-lání konstruktoru
– HatchBrush:• definuje šrafovaný štětec
• barva popředí, pozadí a styl šrafování jsou specifiko-vány v době volání konstruktoru
– LinearGradientBrush:• definuje štětec používající lineární gradient (plynulý
přechod jedné barvy do barvy druhé)
23-04-21 21
Třída Brush (3)
• Poznámky:– třídy HatchBrush a LinearGradient-Brush jsou definovány ve jmenném prostoru System.Drawing.Drawing2D
– vytvořené štětce se rovněž používají při zobrazo-vání textů pomocí metody DrawString, kde udávají barvu (výplň) jednotlivých znaků
– všichni potomci třídy Brush jsou definování s modifikátorem sealed
23-04-21 22
Třída Font• Definována ve jmenném prostoru:System.Drawing
• Třída Font určuje písmo, které bude použité při zobrazování textu pomocí metody DrawString
• Parametry písma (font, velikost, styl apod.) jsou specifikovány v době volání konstruk-toru
• Poznámka:– definována s modifikátorem sealed
23-04-21 23
Objektově orientovaná knihovna pro práci s grafickými objekty (1)
• Implementované grafické objekty (útvary):– Kružnice (Circle)– Elipsa (Ellipse)– Obdélník (Rectangle)– Oblouk (Arc)– možnost rozšíření o další objekty
• Požadované funkce:– Zobrazení objektu– Skrytí objektu– Přesunutí objektu
23-04-21 24
Objektově orientovaná knihovna pro práci s grafickými objekty (2)
• Společné vlastnosti objektů:– Vlastnosti:
•int X, int Y– souřadnice referenčního bodu objektu
•bool Visible– informace o viditelnosti objektu
•Form Window– okno, ve kterém se objekt bude vykreslovat
– Metody:• konstruktor: (Form initWindow,
int initX, int initY)– vytvoření objektu s počátečními souřadnicemi referenčního
bodu danými parametry initX, initY, který se bude vy-kreslovat v okně initWindow
23-04-21 25
Objektově orientovaná knihovna pro práci s grafickými objekty (3)
•void Draw(Graphics graph, Pen pen) – vykreslení objektu (útvaru) prostřednictvím objektu graph
s perem pen
•void Show()– zobrazení objektu
•void Hide() – skrytí objektu
•void MoveTo(int newX, int newY)– přesunutí objektu na souřadnice dané parametry newX, newY