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 (string
ov). Používame v prípade, že je vlastnosťMultiLine
natrue
.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ímePasswordChar
na 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ť akoint
alebofloat
, 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 uTextBox
u 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. DoItems
inak 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 vItems
objekty (napr. Inštancie triedyUzivatel
), dostaneme po pretypovanie priamo inštanciu používateľa, ktorý je vComboBox
u 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 doItems
môž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.Jmeno
v prípade, že máme vDataSource
použí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.One
umožňuje vybrať len jednu položku,MultiSimple
umožňuje vybrať viac položiek naraz.MultiExtended
umožňuje vybrať viac a to aj pomocou klávesov Ctrl a Shift.None
neumožň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 jeCheckBox
zaškrtnutý alebo nie.Text
(string
) - Textový popisokCheckBox
u (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í.