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ý CheckBoxu. 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í.
RadioButtony 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, jeRadioButtonzaškrtnutý.Appearance- Pokud nastavíme naButton, bude seRadioButtonvykreslovat jako obyčejné tlačítko (tedy jakoButton). ZaškrtnutýRadioButtonbude 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 seRadioButtonzaš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 RadioButtony, 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
Panelu 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.Panelje 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.Normalzobrazí obrázek jak je,StretchImageho roztáhne bez ohledu na poměr stran na celou velikostPictureBoxu,AutoSizenastavíPictureBoxu velikost podle obrázku,CenterImageobrázek vystředí a konečněZoomroztá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éez 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 TextBoxu, 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.

David se informační technologie naučil na