C# - prvky UI – vlastnosti a události Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí
Co je to UI ? User interface – komunikace uživatele s vytvářenou aplikací (textové, grafické GUI) Událostní programování Podpora vizuálního návrhu UI aplikací Windows Form designer & ToolBox Základní kroky: – přidání ovladačů na pracovní plochu – Nastavení vlastností ovladačů – Napsání funkcí (handlers) pro ošetření událostí (events) Všechny kroky udělané vizuálně je možné naprogramovat v zdrojovém kódu
Přidání ovládacích prvků
Činnosti prováděné ve vizuálním prostředí jsou transformovány do kódu a zapisovány do souboru.designer.cs, kde name je název formuláře Při spuštění aplikace jsou prvky podle tohoto souboru nastaveny na pozici a velikost odpovídající těmto parametrům v „design módu“
private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(185, 208); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(75, 23); this.button1.TabIndex = 0; this.button1.Text = "button1"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 266); this.Controls.Add(this.button1); this.Name = "Form1"; this.Text = "Form1"; this.ResumeLayout(false); }
Setting properties (nastavování vlastností grafických prvků) Po přidání grafického prvku Barva pozadí, velikost, defaultní text,… Inicializační hodnoty nastavené v Properties window platné při vytvoření grafického prvku po spuštění programu K těmto hodnotám je možné přistupovat a měnit je za chodu programu přes nastavování vlastností instancí objektů grafických prvků v aplikaci Properties window umožňuje získat přehled o všech vlastnostech, událostech a metodách které jsou daným prvkem podporovány msdn - kontrolní prvky na webu
Vlastnosti - pravidla Pojmenování prvků – dodržování konvencí usnadňuje přehlednost zdrojového kódu naming convensions Pozicování prvků na formuláři: – Auto-sizing (ukázka, Autosize property) – Location
Velikost prvku: Anchoring controls – obnovení pozic ovládacích prvků v souvislosti se změnami velikosti formuláře – použití vlastnosti Anchor
Úkol 1 Vytvořte aplikaci s jedním formulářem, na tento formulář vložte ovládací prvky, pojmenujte je dle zavedených konvencí a rozmístěte je podle vzoru na tlačítkách „Calculate“ a „Close“ nastavte vlastnost „Anchor“ na pevnou pozici vzhledem k pravému dolnímu rohu formuláře:
Estetický vzhled ovládacích prvků – Barvy (BackColor) – Obrázky (BackgrounImage) – Ohraničení (BorderStyle) Pořadí prvků na formuláři – TabStop a TabIndex properties Viditelnost a dostupnost – Visible, Enable properties
Úkol 2 Na vytvořeném formuláři z Úkolu 1 udělejte následující úpravy: – Barvu textboxů nastavte žlutou, barvu formuláře modrou – Pořadí prvků na formuláři nastavte v pořadí (btnCalculate, txtBoxLenght, txtBoxHeight,txtBoxPerimetr, txtBoxArea, vynechte btnClose) – Přidejte neviditelný Label „spočítáno no.“, kde no. Bude ukazovat počet stisknutí tlačítka Calculate – Přidejte funkčnost znepřístupnění tlačítka Calculate pokud počet jeho stisknutí přesáhne počet 10
Co jsou to Events? Zajišťují komunikaci a interakci tříd v programu Akce, která se objeví na objektu a ovlivní ho natolik, že klienti tohoto objektu by měli mít možnost na tuto akci reagovat (stisk tlačítka, …) Události si každý programátor může vytvořit nebo u ovládacích prvků využít předdefinovanou sadu (tvorba vlastních událostí bude předmětem výuky po úvodu do OOP)
Controls events Po dobu životnosti programu, jeho ovládací prvky pravidelně posílají požadavky na OS k vykonání nějaké činnosti. Tyto požadavky musejí být vhodně ošetřeny. Na počítači většinou běží několik aplikací a požadavků na OS, i těch nepředvídatelných, může být velké množství. OS nechává na kontrolních prvcích co chtějí a co za odezvu očekávají. Ke zpracování jakékoliv odchycené zprávy je zapotřebí dvou údajů: – Co vygenerování zprávy způsobilo – Co za typ zprávy to je Obě tyto informace jsou předávány jako argumenty události, jelikož všechny Controls v.NET jsou založeny na Object class je první argument typu object a reprezentuje objekt který způsobil vyvolání události Každý ovládací prvek má předdefinovanou sadu událostí, kterou může programátor využít ve své aplikaci V.NET rozlišujeme dva typy událostí – První typ nepotřebuje k provedení dodatečné informace (např. mozek vyšle příkaz „skrč nohu“ - noha nepotřebuje vyslat žádné dodatečné informace s dotazem jak to má provést), zpráva v.NET, která nepotřebuje žádné dodatečné informace o provedení je nesena objektem EventArgs (v implementaci je uveden jako druhý parametr) – Druhý typ potřebuje dodatečné informace (např. příkaz ústům spolkni vodu by potřeboval ještě ke svému provedení tekutinu) – tyto dodatečné informace jsou předávány ve zprávě pomocí jména druhého argumentu (jsou různé)
Příklady Základních Events Zprávy klávesnice private void Control_KeyDown(object sender, KeyEventArgs e) { } private void Control_KeyUp(object sender, KeyEventArgs e) { } private void Control_KeyPress(object sender, KeyPressEventArgs e) { } Zprávy myši private void Control_MouseEnter(object sender, EventArgs e) { } private void Control_MouseMove(object sender, MouseEventArgs e) { } private void Control_MouseHover(object sender, EventArgs e) { } private void Control_MouseDown(object sender, MouseEventArgs e) { } private void Control_MouseUp(object sender, MouseEventArgs e) { } private void Form1_MouseLeave(object sender, EventArgs e) { }
18 Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… Seriály o programování v jazyce C# :