Lekce 13 - Základní ovládací prvky Windows Forms
V minulé lekci, DataGridView v C# .NET Windows Forms, jsme dokončili práci s ovládacím prvkem
DataGridView.
V dnešním C# .NET tutoriálu započneme takovou prohlídku ovládacích prvků (controls) ve Windows Forms. V Toolboxu jich máme na výběr opravdu hodně a každá z nich má spoustu vlastností a událostí. V několika lekcích si nyní popíšeme ty nejpoužívanější ovládací prvky a jejich nejdůležitější vlastnosti a události.
Button (tlačítko)

Začněme tlačítkem. Button slouží jako tlačítko, které
jistě dobře znáte. 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
Mezi důležité vlastnosti patří:
Text(string) - Text napsaný na tlačítku, tedy jeho popisek. V ukázce výše je textButton.Image- Ikonka (obrázek) na tlačítku.ImageAlign- Zarovnání obrázku vůči popisku tlačítka.
Události
Click- Vyvolá se po kliknutí na tlačítko.
Label (Popisek)

Label je textový popisek, který se vkládá nad ostatní
ovládací prvky nebo vedle nich. Uživatel poté ví, jak je používat.
Label s textem "Jméno" u textového pole uživateli
sdělí, že zde program očekává jméno.
Vlastnosti
Text(string) - Text popisku (v ukázce výšeLabel).
Události
Žádné důležité.
TextBox (Textové pole)

Dostáváme se k ovládacím prvkům, které slouží k zadávání hodnot.
TextBox slouží k zadávání textu. I když by se dal teoreticky
použít i k zadávání hodnot jiných typů (číslo, datum, ...), většinou
to není vhodné a pro tento účel existuje jiný ovládací prvek. Můžeme
zadávat jak krátký text do jednoho řádku (viz. ukázka výše), tak text
několikařádkový, TextBox poté vypadá takto:

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.ScrollBars- Pokud 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)

K zadávání číselných hodnot slouží NumericUpDown.
Ačkoli můžeme číslo zadat i do TextBoxu a poté ho naparsovat
např. na int, není tento způsob zadání nejvhodnější.
Uživatel nám totiž místo čísla může do políčka vložit nějaký
nesmysl. NumericUpDown umožň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
ValueChanged- Vyvolá 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.
ComboBox (Pole výběru)

Pokud potřebujeme vybrat položku z nějakého výběru, můžeme použít 2
základní ovládací prvky. První je ComboBox, ten obsahuje
několik položek a my jednu z nich můžeme vybrat. Zobrazuje se jako
vyjížděcí nabídka, šetří tedy místo na formuláři.
Vlastnosti
Items(kolekce) - Negenerická kolekce položek. V designeru ve Visual Studiu si zde můžete zadat textové položky. 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 vComboBoxu.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).DataSource- Místo přidávání prvků doItemsmůžeme nastavit tzv.DataSource, tedy zdroj dat. Ovládací prvek poté obvykle sám reaguje na jeho změny a nemusíme měnitItems.DisplayMember- Ve zdroji dat máme obvykle nějakou kolekci objektů, zde můžeme nastavit jméno vlastnosti objektu, která se má vypisovat (např.Jmenov případě, že máme vDataSourceuživatele a ti mají vlastnostJmeno). Nemusíme tak přetěžovatToString()nebo můžeme objekt zobrazovat různými způsoby.
Události
SelectedIndexChanged- Vyvolá se v případě změny vybrané položky.
ListBox (Seznam výběru)

ListBox je v podstatě rozbalený ComboBox, jinak
funguje skoro stejně. Umožňuje nám vybrat položku ze seznamu. Na rozdíl od
ComboBoxu však položek můžeme vybrat více (ale nemusíme).
Vlastnosti
Kromě vlastností, které jsou totožné jako na ComboBoxu
(tedy Items, SelectedItemIndex,
SelectedItem a Sorted, viz. výše) můžeme použít
další rozšířené:
SelectionMode- Můžeme nastavit několik módů výběru.Oneumožňuje vybrat jen jednu položku,MultiSimpleumožňuje vybrat více položek najednou.MultiExtendedumožňuje vybrat více a to i pomocí kláves Ctrl a Shift.Noneneumožň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.SelectedIndices- Vrá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.
CheckBox (Zaškrtávací pole)

CheckBox nám jednoduše řečeno umožňuje něco zapnout nebo
vypnout. Své uplatnění nalezne zejména v nastavení aplikace.
Vlastnosti
Checked(bool) - Udává, zda jeCheckBoxzaškrtnutý či nikoli.Text(string) - Textový popisekCheckBoxu (vysvětluje co zapínáme/vypínáme. Zde je nastaven naCheckBox).
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.
V příští lekci, Další ovládací prvky Windows Forms, se podíváme na další, pokročilejší ovládací prvky.


David se informační technologie naučil na