NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.

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)

Button/tlačítko ve Windows forms aplikaci - Windows Forms - Okenní aplikace v C# .NET

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 - Windows Forms - Okenní aplikace v C# .NET

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ýše Label).

Události

Žádné důležité.

TextBox (Textové pole)

TextBox/Textové pole ve Windows forms aplikaci - Windows Forms - Okenní aplikace v C# .NET

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:

MultiLine TextBox/Víceřádkové textové pole ve Windows forms aplikaci - Windows Forms - Okenní aplikace v C# .NET

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 - Windows Forms - Okenní aplikace v C# .NET

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 šipičku.

ComboBox (Pole výběru)

ComboBox/Pole výběru ve Windows forms aplikaci - Windows Forms - Okenní aplikace v C# .NET

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. Do Items jinak můžete vložit libovolné objekty. Budou se poté vypisovat tak, jak udává jejich metoda ToString(). Ukládat do těchto ovládacích prvků 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. Na rozdí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. Ovládací prvek poté obvykle sám 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 ti mají vlastnost Jmeno). Nemusíme tak přetěžovat ToString() 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/Seznam výběru ve Windows forms aplikaci - Windows Forms - Okenní aplikace v C# .NET

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. 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

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

CheckBox (Zaškrtávací pole)

CheckBox/Zaškrtávací pole ve Windows forms aplikaci - Windows Forms - Okenní aplikace v C# .NET

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.

V příští lekci, Další ovládací prvky Windows Forms, se podíváme na další, pokročilejší ovládací prvky.


 

Předchozí článek
DataGridView v C# .NET Windows Forms
Všechny články v sekci
Windows Forms - Okenní aplikace v C# .NET
Přeskočit článek
(nedoporučujeme)
Další ovládací prvky Windows Forms
Článek pro vás napsal David Hartinger
Avatar
Uživatelské hodnocení:
24 hlasů
David je zakladatelem ITnetwork a programování se profesionálně věnuje 15 let. Má rád Nirvanu, nemovitosti a svobodu podnikání.
Unicorn university David se informační technologie naučil na Unicorn University - prestižní soukromé vysoké škole IT a ekonomie.
Aktivity