13. diel - Základné ovládacie prvky Windows Forms
V minulej lekcii, DataGridView v C # .NET Windows Forms , sme dokončili prácu s ovládacím prvkom
DataGridView. V dnešnom C# .NET tutoriálu začneme takúto
prehliadku ovládacích prvkov (controls) vo Windows Forms. V Toolbox ich máme
na výber naozaj veľa a každá z nich má veľa vlastností a udalostí. V
niekoľkých lekciách si teraz popíšeme tie najpoužívanejšie ovládacie
prvky a ich najdôležitejšie vlastnosti a udalosti.
Button (tlačidlo)

Začnime tlačidlom. Button slúži ako tlačidlo, ktoré
určite dobre poznáte. Zvyčajne sa jedná o kľúčový prvok v našej
aplikácii, ktorý na základe ďalších údajov vo formulári vykoná nejakú
akciu.
Vlastnosti
Medzi dôležité vlastnosti patrí:
Text(string) - text napísaný na tlačidle, teda jeho popis. V ukážke vyššie je textButton.Image- Ikonka (obrázok) na tlačidle.ImageAlign- Zarovnanie obrázku voči popisku tlačidla.
Udalosti
Click- Vyvolá sa po kliknutí na tlačidlo.
Label (Popisok)

Label je textový popis, ktorý sa vkladá nad ostatné
ovládacie prvky alebo vedľa nich. Užívateľ potom vie, ako ich používať.
Label s textom "Jméno" u textového poľa
užívateľovi oznámi, že tu program očakáva meno.
Vlastnosti
Text(string) - text popisku (v ukážke vyššieLabel).
Udalosti
Žiadne dôležité.
Textbox (Textové pole)

Dostávame sa k ovládacím prvkom, ktoré slúžia na zadávanie hodnôt.
TextBox slúži na zadávanie textu. Aj keď by sa dal teoreticky
použiť ik zadávanie hodnôt iných typov (číslo, dátum, ...), väčšinou
to nie je vhodné a na tento účel existuje iný ovládací prvok. Môžeme
zadávať ako krátky text do jedného riadku (viz. Ukážka vyššie), tak text
niekoľkoriadkový, TextBox potom vyzerá takto:

Vlastnosti
Text(string) - Obsah textového poľa (teda text v ňom zadaný).MultiLine(bool) - Ak nastavíme natrue, môžeme textové pole rozťahovať aj na výšku a môžeme do neho vkladať viacriadkový text.ScrollBars- Pokiaľ vkladáme viacriadkový text, je vhodné nastaviť zobrazovanie posuvníkov (scrollbar) v prípade, že sa text do obsahu poľa nezmestí. Môžeme si vybrať medzi zvislým posuvníkom (asi najčastejšie), vodorovným, obom a žiadnym.Lines(String[]) - Obsah textového poľa ako pole riadkov (stringov). Používame v prípade, že je vlastnosťMultiLinenatrue.MaxLength(int) - Obmedzenie polia na určitú dĺžku znakov.ReadOnly(bool) - Umožňuje nastaviť pole iba na čítanie. Teda aby z neho používateľ mohol hodnotu čítať a kopírovať, ale nemohol ju meniť.WordWrap(bool) - Zalamovanie slov.PasswordChar(char) - Pokiaľ do poľa chceme zadávať heslo, nastavímePasswordCharna nejaký znak (najčastejšie hviezdička*). V tej chvíli sa všetky znaky budú zobrazovať ako hviezdičky a zadanie hesla bude bezpečnejšie.
Udalosti
TextChanged- Vyvolá sa pri zmene textu, inými slovami pri pridaní každého písmenká do poľa. Pozor si tu dáme na to, ako často sa udalosť vyvolá. Keď zapíšeme text s dĺžkou 100 znakov, zavolá sa 100x (postupne s pridávaním jednotlivých písmen). Určite by v nej nemal byť kód, ktorý sa vykonáva dlho. Možné využitie tejto udalosti je napr. Aktualizácia ďalších polí a popisov na formulári pri zmene tohto poľa.
NumericUpDown (Číselné pole)

K zadávanie číselných hodnôt slúži NumericUpDown. Hoci
môžeme číslo zadať aj do TextBox ua potom ho naparsovat napr.
Na int, nie je tento spôsob zadania najvhodnejší. Užívateľ
nám totiž namiesto čísla môže do políčka vložiť nejaký nezmysel.
NumericUpDown umožňuje vložiť len číslo, môžeme sa teda na
túto hodnotu spoľahnúť a odpadá parsovanie a reakcie na nevalidný vstupy.
Okrem toho môžeme aj obmedziť rozsah čísla.
Vlastnosti
Value(decimal) - Číselná hodnota v poli. Hodnota je typudecimal. V programoch ju budeme častejšie potrebovať akointalebofloat, preto ju skonvertuje pomocou triedyConvert, napr. Takto:
int i = Convert.ToInt32(NumericUpDown1.Value);
DecimalPlaces(int) - Počet desatinných miest, pre celé čísla0.Increment(decimal) - Udáva o koľko sa má hodnota v poli zvýšiť po kliknutí na šipičku nahor (a znížiť šipičkou dole).ReadOnly(bool) - Pole bude len na čítanie.
Udalosti
ValueChanged- Vyvolá sa vo chvíli zmeny hodnoty. Rovnako ako uTextBoxu sa táto udalosť vyvoláva pri každom vloženom znaku alebo pri každom kliknutí na šipičku.
ComboBox (Pole výberu)

Ak potrebujeme vybrať položku z nejakého výberu, môžeme použiť 2
základné ovládacie prvky. Prvá je ComboBox, ten obsahuje
niekoľko položiek a my jednu z nich môžeme vybrať. Zobrazuje sa ako
Výjazdný ponuka, šetrí teda miesto na formulári.
Vlastnosti
Items(kolekcia) - negenerické kolekcia položiek. V Designeri vo Visual Studiu si tu môžete zadať textové položky. DoItemsinak môžete vložiť ľubovoľné objekty. Budú sa potom vypisovať tak, ako udáva ich metódaToString(). Ukladať do týchto ovládacích prvkov rovno objekty je veľmi výhodné, to uvidíte u vlastnostiSelectedItem.SelectedItemIndex- Index vybraného prvku (prvý prvok má index0). Táto vlastnosť bohužiaľ nejde zadať v dizajnér a často ju teda nastavujeme napr. V konstruktoru formulára, aby bola po spustení aplikácie vybraná 1. položka vComboBoxu.SelectedItem- Vybraný prvok. Na rozdiel od predchádzajúcej vlastnosti vracia priamo vybraný prvok akoobject. Ak máme vItemsobjekty (napr. Inštancie triedyUzivatel), dostaneme po pretypovanie priamo inštanciu používateľa, ktorý je vComboBoxu vybraný. Veľmi jednoducho s ním môžeme ihneď pracovať.Sorted(bool) - Pokiaľ vlastnosť nastavíme natrue, bude sa zoznam položiek udržiavať zotriedený (napr. Podľa abecedy).DataSource- Miesto pridávanie prvkov doItemsmôžeme nastaviť tzv.DataSource, teda zdroj dát. Ovládací prvok potom zvyčajne sám reaguje na jeho zmeny a nemusíme meniťItems.DisplayMember- V zdroji dát máme zvyčajne nejakú kolekciu objektov, tu môžeme nastaviť meno vlastnosti objektu, ktorá sa má vypisovať (napr.Jmenov prípade, že máme vDataSourcepoužívateľa a tí majú vlastnosťJmeno). Nemusíme tak preťažovaťToString()alebo môžeme objekt zobrazovať rôznymi spôsobmi.
Udalosti
SelectedIndexChanged- Vyvolá sa v prípade zmeny vybrané položky.
Listbox (Zoznam výberu)

ListBox je v podstate rozbalený ComboBox, inak
funguje skoro rovnako. Umožňuje nám vybrať položku zo zoznamu. Na rozdiel
od ComboBoxu však položiek môžeme vybrať viac (ale
nemusíme).
Vlastnosti
Okrem vlastností, ktoré sú rovnaké ako na ComboBox u (teda
Items, SelectedItemIndex, SelectedItem a
Sorted, viď. Vyššie) môžeme použiť ďalšie
rozšírené:
SelectionMode- Môžeme nastaviť niekoľko módov výberu.Oneumožňuje vybrať len jednu položku,MultiSimpleumožňuje vybrať viac položiek naraz.MultiExtendedumožňuje vybrať viac a to aj pomocou klávesov Ctrl a Shift.Noneneumožňuje položky vyberať vôbec.SelectedItems- Kolekcia vybraných položiek. Používame ju v prípade, že sme umožnili výber viacerých položiek.SelectedIndices- Vráti kolekciu indexov vybraných položiek.MultiColumn(bool) - Ak nastavíme natrue, budú sa položky zobrazovať vo viacerých stĺpcoch.
Udalosti
SelectedIndexChanged- Vyvolá sa v prípade zmeny vybrané položky.
Checkbox (Začiarkavacie pole)

CheckBox nám jednoducho povedané umožňuje niečo zapnúť
alebo vypnúť. Svoje uplatnenie nájde najmä v nastavení aplikácie.
Vlastnosti
Checked(bool) - Udáva, či jeCheckBoxzaškrtnutý alebo nie.Text(string) - Textový popisokCheckBoxu (vysvetľuje čo zapíname / vypíname. Tu je nastavený naCheckBox).
Udalosti
CheckedChanged- Vyvolá sa vo chvíli zmenenie zaškrtnutie (teda ak sme políčko zaškrtli alebo odškrtla). Tu môžeme reagovať na zmenu nastavenia a podľa toho prispôsobiť správanie aplikácie.
V budúcej lekcii, Riešené úlohy k 7.-11. lekciu Windows Forms v C # .NET , sa pozrieme na ďalšie, pokročilejšie ovládacie prvky.
V nasledujúcom cvičení, Riešené úlohy k 7.-11. lekciu Windows Forms v C # .NET, si precvičíme nadobudnuté skúsenosti z predchádzajúcich lekcií.

David sa informačné technológie naučil na