5) C# Základní komponenty Flashcards
Událostmi řízené programování
Vkonzolových aplikacích dochází ktzv. dávkovému zpracování – aplikace se spustí, provedou se všechny příkazy a program skončí.
Událostmi řízená aplikace se spustí a čeká, až nastanou události (Např. kliknutí myší na nějaké komponentě).
Pokud nastane nějaká událost a existuje pro ni obslužná metoda, tato metoda se zavolá, provede svůj kód a aplikace opět čeká na další událost. Takové metodě se říká obsluha události.
Aplikace sama nikdy neskončí, dokud nenastane událost, vjejíž obsluze je příkaz pro její ukončení.
Používání komponent (vlastnosti, metody a události)
Vlastnosti metody a události popište na konkrétních komponentách, např. Form TextBox. ListBox.. (Můžete si samozřejmě vybrat jiné komponenty)
tlačítko - Button
Button
slouží jako tlačítko. Obvykle se jedná o klíčový prvek v naší aplikaci, který na základě dalších údajů ve formuláři vykoná nějakou akci.
Vlastnosti
- Text(string)
- Image
- ImageAlign
Události
- Click
popisky a editační pole - Label, TextBox, NumericUpDown
Label je textový popisek, slouží pouze kzobrazení textu.
Předveďte nastavení nejdůležitější vlastnosti Text veditoru vlastností a vkódu.
Předveďte vlastnosti týkající se vzhledu.
TextBox
Slouží k zadávání textu jednořádkového nebo víceřádkového textu.
Ukázka víceřádkového TextBox:
Vlastnosti
- Text(string) - Obsah textového pole (tedy text v něm zadaný).
- MultiLine(bool) - Pokud nastavíme natrue, můžeme textové pole roztahovat i na výšku a můžeme do něj vkládat víceřádkový text.
- ScrollBarsPokud vkládáme víceřádkový text, je vhodné nastavit zobrazování posuvníků (scrollbarů) v případě, že se text do obsahu pole nevejde. Můžeme si vybrat mezi svislým posuvníkem (asi nejčastější), vodorovným, oběma a žádným.
- Lines(String[]) - Obsah textového pole jako pole řádků (stringů). Používáme v případě, že je vlastnostMultiLinenatrue.
- MaxLength(int) - Omezení pole na určitou délku znaků.
- ReadOnly(bool) - Umožňuje nastavit pole jen pro čtení. Tedy aby z něj uživatel mohl hodnotu číst a kopírovat, ale nemohl ji měnit.
- WordWrap(bool) - Zalamování slov.
- PasswordChar(char) - Pokud do pole chceme zadávat heslo, nastavímePasswordCharna nějaký znak (nejčastěji hvězdička*). V tu chvíli se všechny znaky budou zobrazovat jako hvězdičky a zadání hesla bude bezpečnější.
Události
- TextChanged - Vyvolá se při změně textu, jinými slovy při přidání každého písmenka do pole. Pozor si zde dáme na to, jak často se událost vyvolá. Když zapíšeme text o délce 100 znaků, zavolá se 100x (postupně s přidáváním jednotlivých písmen). Určitě by v ní neměl být kód, který se vykonává dlouho. Možné využití této události je např. aktualizace dalších polí a popisků na formuláři při změně tohoto pole.
NumericUpDown (Číselné pole)
Slouží k zadávání číselných hodnot.
Sice můžeme číslo zadat i doTextBoxu a poté ho naparsovat např. naint, ale uživatel nám místo čísla může do políčka vložit nějaký nesmysl.
NumericUpDownumožňuje vložit pouze číslo, můžeme se tedy na tuto hodnotu spolehnout a odpadá parsování a reakce na nevalidní vstupy.
Kromě toho můžeme i omezit rozsah čísla.
Vlastnosti
- Value(decimal) - Číselná hodnota v poli. Hodnota je typudecimal. V programech ji budeme častěji potřebovat jakointnebofloat, proto ji zkonvertujeme pomocí třídyConvert, např. takto: int i = Convert.ToInt32(NumericUpDown1.Value);
- DecimalPlaces(int) - Počet desetinných míst, pro celá čísla0.
- Increment(decimal) - Udává o kolik se má hodnota v poli zvýšit po kliknutí na šipičku nahoru (a snížit šipičkou dolů).
- ReadOnly(bool) - Pole bude jen pro čtení.
Události
- ValueChangedVyvolá se ve chvíli změny hodnoty. Stejně jako uTextBoxu se tato událost vyvolává při každém vloženém znaku nebo při každém kliknutí na šipičku.
Komponenty pro výběr – ListBox, ComboBox
Komponenty pro výběr – ListBox, Combobox
ListBox
ListBoxje výběrový seznam.
Umožňuje nám vybrat položku nebo více položek ze seznamu
Vlastnosti
- Items(kolekce) - kolekce položek. V designeru ve Visual Studiu si zde můžete zadat textové položky. (předveďte) DoItemsjinak můžete vložit libovolné objekty. Budou se poté vypisovat tak, jak udává jejich metodaToString(). Ukládat do těchto ovládacích prvků rovnou objekty je velmi výhodné, to uvidíte u vlastnostiSelectedItem.
- SelectedItemIndex Index vybraného prvku (první prvek má index0). Tato vlastnost bohužel nejde zadat v designeru a často ji tedy nastavujeme např. v konstruktoru formuláře, aby byla po spuštění aplikace vybrána 1. Položka.
- SelectedItem - Vybraný prvek. Na rozdíl od předchozí vlastnosti vrací přímo vybraný prvek jakoobject. Pokud máme vItemsobjekty (např. instance třídyUzivatel), dostaneme po přetypování přímo instanci uživatele, který je vComboBoxu vybrán. Velmi jednoduše s ním můžeme ihned pracovat.
- Sorted(bool) - Pokud vlastnost nastavíme natrue, bude se seznam položek udržovat setříděný (např. podle abecedy).
- SelectionMode Můžeme nastavit několik módů výběru.Oneumožňuje vybrat jen jednu položku,MultiSimple umožňuje vybrat více položek najednou. MultiExtended umožňuje vybrat více a to i pomocí kláves CTRL+SHIFT. None neumožňuje položky vybírat vůbec.
- SelectedItems Kolekce vybraných položek. Používáme ji v případě, že jsme umožnili výběr více položek.
- SelectedIndicesVrátí kolekci indexů vybraných položek.
- MultiColumn(bool) - Pokud nastavíme natrue, budou se položky zobrazovat ve více sloupcích.
Události
- SelectedIndexChanged - Vyvolá se v případě změny vybrané položky.
Combobox
Výběrový rozbalovací seznam.
Na rozdíl od ListBox neumožňuje vícenásobný výběr položek.
Vlastnosti
Stejné jako u ListBox, ale vzhledem kmožnosti výběru pouze jediné položky nemá vlastnosti SelectionMode, SelectedItems, SelectedIndices, MultiColumn.
Události
- SelectedIndexChanged - Vyvolá se v případě změny vybrané položky.
komponenty sloužící kprovádění podmíněných příkazů – CheckBox, RadioButton,
CheckBox
Jedná se o zaškrtávací políčko zWindows.
Komponenty Checkbox pracují jako voliče. Každý CheckBox ošetříme samostatným příkazem if.
Vlastnosti
- Checked(bool) - Udává, zda jeCheckBoxzaškrtnutý či nikoli.
- Text(string) - Textový popisekCheckBoxu (vysvětluje co zapínáme/vypínáme)
Události
- CheckedChanged - Vyvolá se ve chvíli změnění zaškrtnutí (tedy pokud jsme políčko zaškrtli nebo odškrtli). Zde můžeme reagovat na změnu nastavení a podle toho uzpůsobit chování aplikace.
RadioButton
Pracuje jako přepínač – tzn., že v aktuálním kontejneru může být vybrán pouze jeden RadioButton. Pokud jich vložíme více a nějaký vybereme, výběr u ostatních se zruší.
Vzhledem kvýše popsanému ošetřujeme jednotlivé RadioButtony „žebříčkem“ if……else if……elseif……else
Vlastnosti
- Checked(bool) - Pokud jetrue, jeRadioButtonzaškrtnutý.
- AppearancePokud nastavíme naButton, bude seRadioButtonvykreslovat jako obyčejné tlačítko. ZaškrtnutýRadioButtonbude vykreslen jako stisknuté tlačítko, ostatní jako nestisknutá.
- ImagePokud používámeAppearance = Button, můžeme tlačítku jednoduše nastavit ikonku.
- TextAlignZarovnání textu popisku vůči zaškrtávacímu tlačítku.
- ImageAlignZarovnání obrázku.
- TextImageRelationZde můžeme nastavit vztah mezi textem a obrázkem. Text může být napsaný na obrázku, může být také nad ním, pod ním atd.
Události
- CheckedChangedVyvolá se v případě, že seRadioButtonzaškrtl nebo odškrtl.
Kontejnery GroupBox a Panel
Pokud spolu některé prvky na formuláři logicky souvisí, můžeme je umístit do nějakého kontejneru. Kontejner je ovládací prvek, který v sobě může obsahovat další prvky, ty do něj v designeru jednoduše naskládáme myší.
GroupBox (Skupina)
Pokud na formuláři vytvoříme GroupBoxa naklikneme do něj nějaké prvky, můžeme snimi pracovat najednou:
- Přesouvají se spolu s kontejnerem
- Vlastnosti jako Visible a Enabled kontejneru se projeví u všech ovladačů, které kontejner obsahuje
- Pomocí cyklu můžeme jednoduše přistupovat k prvkům uvnitř kontejneru pomocí jeho kolekceControls.
- Můžeme do něj vkládatRadioButtony a vytvářrt tak oddělené skupiny přepínačů.
Vlastnosti
- TextNadpis skupiny.
- Controls - Kolekce komponent vložených uvnitř skupiny.
Kontejnerové komponenty GroupBox a Panel
CheckBox
Jedná se o zaškrtávací políčko zWindows.
Komponenty Checkbox pracují jako voliče. Každý CheckBox ošetříme samostatným příkazem if.
Vlastnosti
- Checked(bool) - Udává, zda jeCheckBoxzaškrtnutý či nikoli.
- Text(string) - Textový popisekCheckBoxu (vysvětluje co zapínáme/vypínáme)
Události
- CheckedChanged - Vyvolá se ve chvíli změnění zaškrtnutí (tedy pokud jsme políčko zaškrtli nebo odškrtli). Zde můžeme reagovat na změnu nastavení a podle toho uzpůsobit chování aplikace.
RadioButton
Pracuje jako přepínač – tzn., že v aktuálním kontejneru může být vybrán pouze jeden RadioButton. Pokud jich vložíme více a nějaký vybereme, výběr u ostatních se zruší.
Vzhledem kvýše popsanému ošetřujeme jednotlivé RadioButtony „žebříčkem“ if……else if……elseif……else
Vlastnosti
- Checked(bool) - Pokud jetrue, jeRadioButtonzaškrtnutý.
- AppearancePokud nastavíme naButton, bude seRadioButtonvykreslovat jako obyčejné tlačítko. ZaškrtnutýRadioButtonbude vykreslen jako stisknuté tlačítko, ostatní jako nestisknutá.
- ImagePokud používámeAppearance = Button, můžeme tlačítku jednoduše nastavit ikonku.
- TextAlignZarovnání textu popisku vůči zaškrtávacímu tlačítku.
- ImageAlignZarovnání obrázku.
- TextImageRelationZde můžeme nastavit vztah mezi textem a obrázkem. Text může být napsaný na obrázku, může být také nad ním, pod ním atd.
Události
- CheckedChangedVyvolá se v případě, že seRadioButtonzaškrtl nebo odškrtl.
Timer
Jedná se o nevizuální komponentu, která umožňuje provést určité akce automaticky v daném časovém intervalu.
Klíčovou vlastností je zdeInterval, zadává se v milisekundách a udává rozestupy mezi akcemi. 60 000 ms je 1 minuta. Důležitá je také vlastnostEnabled, jež určuje, jestli jeTimeraktivní po spuštění programu. Druhou možností je spustit ho metodouStart(). Metoda Stop()poté Timerlogicky zastaví.
Timer nemá vlastní vlákno, tedy při vykonávání náročnějšího úkonu “zasekne” celý formulář.
Timermá jedinou událost a tou je Tick, neboli každé uplynutí nastaveného intervalu.