13. díl - Základní kontrolky Windows Forms

C# .NET Windows Forms Základní kontrolky Windows Forms

V dnešním dílu seriálu započneme takovou prohlídku kontrolek (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 dílech si nyní popíšeme ty nejpoužívanější kontrolky a jejich nejdůležitější vlastnosti a události.

Button (tlačítko)

Button/tlačítko ve Windows forms aplikaci

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 text "Button".
  • 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/popisek ve Windows forms aplikaci

Label je textový popisek, který se vkládá nad ostatní kontrolky 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ýše "Label").

Události

Žádné důležité.

TextBox (Textové pole)

TextBox/Textové pole ve Windows forms aplikaci

Dostáváme se ke kontrolká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á kontrolka. 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:

MultiLine TextBox/Víceřádkové textové pole ve Windows forms aplikaci

Vlastnosti

  • Text (string) - Obsah textového pole (tedy text v něm zadaný).
  • MultiLine (bool) - Pokud nastavíme na true, 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 vlastnost MultiLine na true.
  • 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íme PasswordChar na 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)

NumericUpDown/Číselné pole ve Windows forms aplikaci

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 typu decimal. V programech ji budeme častěji potřebovat jako int nebo float, proto ji zkonvertujeme pomocí třídy Convert, např. takto:
int i = Convert.ToInt32(NumericUpDown1.Value);
  • DecimalPlaces (int) - Počet desetinných míst, pro celá čísla 0.
  • 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 u TextBoxu se tato událost vyvolává při každém vloženém znaku nebo při každém kliknutí na šipečku.

ComboBox (Pole výběru)

ComboBox/Pole výběru ve Windows forms aplikaci

Pokud potřebujeme vybrat položku z nějakého výběru, můžeme použít 2 základní kontrolky. 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 VisualStudiu si zde můžete zadat textové položky. Do Items jinak můžete vložit libovolný objekt. Bude se poté vypisovat tak, jak udává jeho metoda ToString(). Ukládat do těchto kontrolek rovnou objekty je velmi výhodné, to uvidíte u vlastnosti SelectedItem.
  • SelectedItemIndex - Index vybraného prvku (první prvek má index 0). 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 v ComboBoxu.
  • SelectedItem - Vybraný prvek. Narozdíl od předchozí vlastnosti vrací přímo vybraný prvek jako object. Pokud máme v Items objekty (např. instance třídy Uzivatel), dostaneme po přetypování přímo instanci uživatele, který je v ComboBoxu vybrán. Velmi jednoduše s ním můžeme ihned pracovat.
  • Sorted (bool) - Pokud vlastnost nastavíme na true, bude se seznam položek udržovat setříděný (např. podle abecedy).
  • DataSource - Místo přidávání prvků do Items můžeme nastavit tzv. DataSource, tedy zdroj dat. Kontrolka poté obvykle sama reaguje na jeho změny a nemusíme měnit Items.
  • DisplayMember - Ve zdroji dat máme obvykle nějakou kolekci objektů, zde můžeme nastavit jméno vlastnosti objektu, která se má vypisovat (např. Jmeno v případě, že máme v DataSource uživatele a ten má vlastnost Jmeno). Nemusíme tak přetěžovat ToString() nebo můžeme objekt zobrazovat různými způsoby.

Události

  • SelectedIndex­Changed - Vyvolá se v případě změny vybrané položky.

ListBox (Seznam výběru)

ListBox/Seznam výběru ve Windows forms aplikaci

ListBox je v podstatě rozbalený ComboBox, jinak funguje skoro stejně. Umožňuje nám vybrat položku ze seznamu. Narozdí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. One umožň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 a 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.
  • SelectedIndices - Vrátí kolekci indexů vybraných položek.
  • MultiColumn (bool) - Pokud nastavíme na true, budou se položky zobrazovat ve více sloupcích.

Události

  • SelectedIndex­Changed - Vyvolá se v případě změny vybrané položky.

CheckBox (Zaškrtávací pole)

CheckBox/Zaškrtávací pole ve Windows forms aplikaci

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 je CheckBox zaškrtnutý či nikoli.
  • Text (string) - Textový popisek CheckBoxu (vysvětluje co zapínáme/vypínáme. Zde je nastaven na CheckBox).

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.

Příště se podíváme na další, pokročilější kontrolky.


 

  Aktivity (1)

Článek pro vás napsal David Čápka
Avatar
Autor pracuje jako softwarový architekt a pedagog na projektu ITnetwork.cz (a jeho zahraničních verzích). Velmi si váží svobody podnikání v naší zemi a věří, že když se člověk neštítí práce, tak dokáže úplně cokoli.
Unicorn College Autor se informační technologie naučil na Unicorn College - prestižní soukromé vysoké škole IT a ekonomie.

Jak se ti líbí článek?
Celkem (7 hlasů) :
4.142854.142854.142854.14285 4.14285


 


Miniatura
Všechny články v sekci
Okenní aplikace v C#
Miniatura
Následující článek
Další kontrolky Windows Forms

 

 

Komentáře
Zobrazit starší komentáře (22)

Avatar
Libor Šimo (libcosenior):

Všetko je na nete, len treba vedieť čo hľadať, díky. 8-)

Editováno 5.8.2013 15:58
Odpovědět 5.8.2013 15:57
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):

Stále zabúdam, že treba odpovedať na konkrétny príspevok. Tak ešte raz dík. ;)

Odpovědět 5.8.2013 16:01
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Petr Čech (czubehead):

Toto není dobrý úvod do WF aplikací. o_O

Odpovědět 21.9.2013 21:01
Why so serious? -Joker
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Čech (czubehead)
David Čápka:

Nikde jsem si nevšiml, že by tento článek měl být úvodem.

Odpovědět 21.9.2013 21:32
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Petr Čech (czubehead):

To sice nikde není, ale kde teda je, když ne v prvním článku v sekci? :o

Odpovědět 21.9.2013 21:36
Why so serious? -Joker
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Petr Čech (czubehead)
David Čápka:

Dám ti šokující odpověď: ještě jsem ho nenapsal! :o

Odpovědět 21.9.2013 21:39
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Ondřej Pohořelý:
píča :D
Odpovědět 30.10.2015 14:06
Nezastavuj se dlouho protože život nikdy nečeká !
Avatar
Ondřej Langr (andysekcze):

to je na ban ne? :D

Odpovědět  +1 30.10.2015 14:49
I have a charger. I have Note 7. Umh I haven't Note7.
Avatar
Ondřej Pohořelý:

Mylím že ne :D

Odpovědět 30.10.2015 17:32
Nezastavuj se dlouho protože život nikdy nečeká !
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 32. Zobrazit vše