Lekce 14 - Další ovládací prvky Windows Forms
V minulé lekci, Základní ovládací prvky Windows Forms, jsme si popsali několik základních
formulářových prvků (controls), byly to Button
,
Label
, TextBox
, NumericUpDown
,
ComboBox
, ListBox
a CheckBox
.
Dnes v C# .NET tutoriálu budeme v prohlídce Toolboxu pokračovat.
RadioButton (Přepínač)

RadioButton
(občas překládán jako rádiové tlačítko) je
velmi podobný CheckBox
u. Rozdíl je v tom, že v aktuálním
kontejneru může být zaškrtnutý pouze jeden RadioButton
. Pokud
jich vložíme více a nějaký zaškrtneme, ostatní se odškrtnou. Máme tak
tedy možnost zvolit vždy jen jednu z nějaké množiny možností.
RadioButton
y obvykle používáme v případě, kdy je možností
jen několik a ListBox
by na formuláři nevypadal hezky.
Vlastnosti
Checked
(bool
) - Pokud jetrue
, jeRadioButton
zaškrtnutý.Appearance
- Pokud nastavíme naButton
, bude seRadioButton
vykreslovat jako obyčejné tlačítko (tedy jakoButton
). ZaškrtnutýRadioButton
bude vykreslen jako stisknuté tlačítko, ostatní jako nestisknutá.Image
- Pokud používámeAppearance = Button
, můžeme tlačítku jednoduše nastavit ikonku.TextAlign
- Zarovnání textu popisku vůči zaškrtávacímu tlačítku.ImageAlign
- Zarovnání obrázku.TextImageRelation
- Zde můžeme nastavit vztah mezi textem a obrázkem. Text může být napsaný na obrázku, může být také nad ním, pod ním atd.
Události
CheckedChanged
- Vyvolá se v případě, že seRadioButton
zaškrtl nebo odškrtl.
GroupBox (Skupina)

Pokud spolu některé prvky na formuláři logicky souvisí, můžeme je
umístit do nějakého kontejneru. Kontejner je ovládací prvek, který v sobě
může obsahovat další prvky, ty do něj v designeru jednoduše naskládáme
myší. Jedním z kontejnerů v .NETu je GroupBox
. Zkuste si
vytvořit GroupBox
a nakliknout do něj několik prvků. Pokud ho
nyní přesunete, uvidíte, že se tyto vložené prvky přesouvají spolu s
ním.
Kromě zpřehlednění formuláře má vkládání ovládacích prvků do
kontejnerů další výhody. Můžeme např. skrýt kontejner (nastavit mu
Visible
na false
) a on zmizí i s jeho obsahem.
Můžeme pomocí cyklu jednoduše přistupovat k prvkům uvnitř kontejneru
pomocí jeho kolekce Controls
. A v neposlední řadě do něj
můžeme vložit RadioButton
y, ze kterých může být vždy
vybraný jen jeden. RadioButton
ů může být vybraných více,
pokud jsou v jiných kontejnerech.
Vlastnosti
Text
- Nadpis skupiny.Controls
- Kolekce komponent vložených uvnitř skupiny.
Události
Žádné důležité.
Panel (Panel)

Panel
je dalším kontejnerovým ovládacím prvkem. Chová se
stejně, jako GroupBox
, pouze se jeho rámeček ve výchozím stavu
nezobrazuje. Můžeme tak seskupovat některé prvky formuláře pro vnitřní
potřebu aplikace a uživatel nic nepozná. Typickou ukázkou je naplnění
např. 20ti TextBox
ů nějakými hodnotami. Jednoduše je dáme do
Panel
u a cyklem projedeme jeho kolekci Controls
,
kterým nastavíme Text
. Bez panelu bychom se k prvkům
TextBox
špatně dostávali a třeba si přepsali úplně všechny
na formuláři.
Vlastnosti
BorderStyle
- Styl rámečku. Můžeme nastavitNone
(žádný),FixedSingle
(jednoduchý) aFixed3D
(stínovaný).Controls
- Kolekce komponent vložených uvnitř panelu.
Události
Žádné důležité.
FlowLayoutPanel (Panel s tekoucím obsahem)

FlowLayoutPanel
za nás aranžuje prvky na formuláři. Zatímco
v normálním panelu musíme prvku udat pozici, FlowLayoutPanel
se
na pozice nedívá a prvky vykresluje jak jdou za sebou, zleva doprava, shora
dolů. To může být mnohdy užitečné.
Vlastnosti
FlowDirection
- Můžeme nastavit jakým směrem se mají prvky vykreslovat.Panel
je umí kreslit také zprava doleva nebo dokonce i svisle a to v obou směrech.BorderStyle
- Styl rámečku. Můžeme nastavitNone
(žádný),FixedSingle
(jednoduchý) aFixed3D
(stínovaný).
Události
Žádné důležité.
PictureBox (Obrázek)

PictureBox
je obrázek, přesněji řečeno ovládací prvek s
obrázkem. Hodí se ke zkrášlení designu aplikace. Často se ji také
obrázek nepřiřadí a místo toho se na prázdný obrázek vykresluje (např.
nějaký graf).
Vlastnosti
Image
- Obrázek.SizeMode
- Režim zobrazení obrázku.Normal
zobrazí obrázek jak je,StretchImage
ho roztáhne bez ohledu na poměr stran na celou velikostPictureBox
u,AutoSize
nastavíPictureBox
u velikost podle obrázku,CenterImage
obrázek vystředí a konečněZoom
roztáhne (či zmenší) s ohledem na poměr stran.
Události
Paint
- Zavolá se ve chvíli překreslení obrázku (tedy kdy si formulář řekne o to, aby se obrázek znovu vykreslil. To se stane při vytvoření formuláře nebo např. když přes formulář přejedeme jiným oknem). V této metodě obvykle na plátno obrázku kreslíme vlastní grafiku, dělá se to metodami na vlastnostiGraphics
, kterou nalezneme na proměnnée
z parametru metody. Během kurzu jsme si to vyzkoušeli.
DateTimePicker (Výběr data a času)

DateTimePicker
nám umožňuje důstojně zadávat datum a čas.
Určitě se vyplatí tento ovládací prvek k tomuto účelu používat, pro
uživatele je to pohodlné a pro nás také. Nemusíme hodnoty složitě
parsovat z TextBox
u, ušetříme si reakce na špatně zadané
hodnoty a zároveň za nás zadávání vyřeší operační systém. Ten nám
poskytne hezký kalendář k zadání data a k času pole s šipičkami.
Vlastnosti
Format
- Vybírá formát výpisu. Můžeme si vybrat mezi dlouhým a krátkým výpisem data, výpisem času a poté i vlastním formátem, ten tu však nebudeme řešit.
Takto vypadá Picker pro výběr času:

ShowUpDown
(bool
) - Udává, zda se má zobrazovat UpDown (šipičky, které jsou vhodné zejména k zadání času) nebo vyjížděcí kalendář (ten je perfektní k zadání data).Value
- Zadaná hodnota.
Události
ValueChanged
- Vyvolá se ve chvíli, kdy uživatel změní zadanou hodnotu.
MonthCalendar (Měsíční kalendář)

Kalendář nám umožňuje zobrazovat dny v měsíci, označovat je a vykreslovat některé jako tučné. Nabízí se jako součást nějaké agendy.
Vlastnosti
BoldedDays
(DateTime[]
) - PoleDateTime
, nastavené na dny, které se mají vykreslit jako tučné. Takto např. označíme dny, ve které máme nějakou schůzku.MonthlyBoldedDays
(DateTime[]
) - Podobně jako výše můžeme tučné dny navolit bez ohledu na měsíc, budou se tak zobrazovat tučně v každém měsíci.AnnuallyBoldedDays
- Opět podobně tučné dny, tyto se zobrazí každý rok, na roce tedy nezáleží.CalendarDimensions
- Počet měsíců vykreslených svisle a vodorovně.ShowToday
(bool
) - Umožňuje vypnout dolní lištu s dnešním datem.ShowTodayCircle
(bool
) - Umožňuje vypnout zvýraznění dnešního dne kroužkem.ShowWeekNumbers
(bool
) - Vypíše i čísla týdnů.
Události
DateChanged
- Vyvolá se při změně výběru data (nebo rozsahu dat) nebo při přechodu šipkami na další/předchozí měsíc.DateSelected
- Vyvolá se při změně výběru data (nebo rozsahu dat).
To je zas pro dnešek vše.
V příští lekci, Windows Forms - Dialogy, budeme pokračovat s naším průzkumem ovládacích prvků v .NETu.