IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

16. diel - Ovládacie prvky Windows Forms štvrtýkrát

V minulej lekcii, Windows Forms - Dialógy , sme sa venovali aplikačnému menu a dialógom. Dnes sa pozrieme ako sa používajú ovládacie prvky RichTextBox, MaskedTextBox, TabControl, LinkLabel, Timer a ProgressBar.

MaskedTextBox

MaskedTextBox vo Windows Forms - Okenné aplikácie v C # .NET vo Windows Forms

Ide o špeciálny druh TextBox u, kde si môžeme jednoducho určiť, v akom formáte doň užívateľ bude zadávať dáta. To sa hodí napr. Pre získavanie času, dátumu, telefónneho čísla a ďalších podobných údajov. Do poľa potom nie je možné zadať nič iné, ako povolený formát, čo nahrádza nutnosť vstupy validovať.

Kľúčovou vlastnosťou je tu Mask, ktorá vlastne určuje formát zadávaného čísla. Ak si nevyberiete z preddefinovaných, je ľahké si vytvoriť vlastné. Vyberiete <Custom> a do Mask boxu nižšie napíšete váš vysnívaný formát, napr .: 00.00.0000 by bolo pre zadanie konkrétneho dátumu.

Okrem nuly môžeme použiť znak L pre písmená. Ak chceme povoliť vynechané miesto, používa sa ?. A slúži na zadávanie písmen alebo číslic. 0 je teda iba pre čísla a 9 dovoľuje čísla + voľné miesto.

RichTextBox

RichTextBox vo Windows Forms - Okenné aplikácie v C # .NET vo Windows Forms

RichTextBox je taký TextBox na steroidoch. Umožňuje pokročilé formátovanie textu a ďalšie vychytávky. Hlavné je asi to, že môžete meniť font či farbu iba zvolenej časti textu. Ide to samozrejme aj pre celý text pomocou vlastností ForeColor (farba textu) a BackColor (farba pozadia). Toto ale vie tiež obyčajný TextBox.

Výber konkrétnej časti textu vykonáme metódou Select(). Tá berie ako parametre indexy úseku, ktorý chceme formátovať. Teda počiatočný a konečný. To možno urobiť jednoducho číslami, alebo si pomôcť vlastností. To názorne ukazuje príklad nižšie.

richTextBox1.Select(richTextBox1.Text.IndexOf("text"), "text".Length);
// nebo
richTextBox1.Select(0, 10);

Tento kód teda vyberie text "text" as tým potom môžeme pracovať. Použiť by sme mohli samozrejme i LastIndexOf(). K vybrané časti textu sa potom pristupuje pomocou Selection[Font, BackColor, atd]. Takže úprava by vyzerala nejako takto: ¨

richTextBox1.SelectionFont = new Font("Microsoft sans", 20);
richTextBox1.SelectionBackColor = Color.Black;
richTextBox1.SelectionColor = Color.Blue;

Z vlastností stojí za zmienku MaxLength, ktorá určuje maximálny počet znakov, ktoré je RichTextBox schopný pojať. RightMargin určuje pravé odsadenie. Užitočný je tiež ZoomFactor pre zväčšovanie obsahu.

Udalosťou je tu mnoho. TextChanged sa bude hodiť a ako názov napovedá, volá sa, keď sa text zmenil. LinkClicked sa vyvolá v prípade, že bolo kliknuté na URL odkaz v texte.

LinkLabel

LinkLabel vo Windows Forms - Okenné aplikácie v C # .NET vo Windows Forms

Ako sa dá vyvodiť z názvu (podobne ako u ostatných komponentov) ide jednoducho o Label, ktorý funguje ako odkaz na webovú adresu. Vlastnosti sú tiež podobné obyčajnému Label u. Jeho použitie však nie je úplne intuitívne. Pomocou vlastnosti LinkArea môžeme vybrať na akú časť LinkLabel u pôjde kliknúť. Start určuje začiatočné index a Length počet znakov. Základné použitie by mohlo vyzerať takto:

LinkLabel.Link link = new LinkLabel.Link();
link.LinkData = "http://www.itnetwork.cz";
linkLabel1.Links.Add(link);

Kód vyššie pridáme do konstruktoru okna alebo do udalosti Load formulára. Hlavnou udalosťou LinkLabel je LinkClicked. Do nej je potreba napísať nasledujúci kód:

Process.Start(e.Link.LinkData as String);

Ten pošle príkaz systému a nastavená URL adresa sa otvorí v defaultným prehliadači. Pre použitie je potrebné pridať using System.Diagnostics.

Timer

Jedná sa o veľmi šikovnú komponent, ktorá umožňuje vykonať určité akcie automaticky v danom časovom intervale. Kľúčovou vlastnosťou je tu Interval, zadáva sa v milisekundách a udáva rozostupy medzi akciami. 60 000 ms je 1 minúta. Dôležitá je tiež vlastnosť Enabled, ktoré určuje, či je Timer aktívny po spustení programu. Druhou možnosťou je spustiť ho metódou Start(). Metóda Stop() potom Timer logicky zastaví.

Timer nemá vlastné vlákno, pamätajte teda na to, že pri vykonávaní náročnejšieho úkone "zasekne" celý formulár.

Timer má jedinú udalosť a tou je Tick, čiže každé uplynutí nastaveného intervalu.

TabControl

TabControl vo Windows Forms - Okenné aplikácie v C # .NET vo Windows Forms

Jedná sa o ovládací prvok so záložkami, ktorý do úvodu najlepšie vysvetlí obrázok. Obsahuje niekoľko záložiek, do ktorých možno umiestniť ďalšie prvky (ako napr. Panel) a medzi záložkami možno potom prepínať. Jednotlivé "záložky" sa pridávajú vo vlastnostiach TabControl pod položkou TabPages, kde ich môžeme aj pomenovať. Fungujú ako kontajner, môžeme do nich pridávať ďalšie komponenty. Ďalšie vlastnosti slúži výhradne na zmenu vzhľadu.

TabControl môžete tiež použiť napríklad ako sprievodca inštaláciou. Tlačidlá na prepínanie záložiek síce nedá deaktivovať, ale môžete ich schovať mimo okno. To osvetlí screenshot.

TabControl vo Windows Forms - Okenné aplikácie v C # .NET vo Windows Forms

Na ďalšiu záložku sa potom prepína v kódu napr. Pomocou jej názvu takto:

tabControl1.SelectTab("[název záložky]");

Či pomocou jej indexu:

tabControl1.SelectedIndex = [index];

Progressbar

Progressbar vo Windows Forms - Okenné aplikácie v C # .NET vo Windows Forms

Hodí sa napr. Pre informovanie používateľov o tom, ako pokračuje určitý proces v aplikácii. Vlastnosť Maximum určuje, koľko "políčok" daný progressbar má. Dôležitá je tiež vlastnosť Style, ktorá určuje, v akom štýle bude progress bar vykreslený a konečne Step určuje, o koľko sa zaplní, ak zavoláte metódu PerformStep(). Na výber sú tri možnosti - Blocks (nadobúda skokovo), Continuous (nadobúda plynulo) a Marquee. Posledný menovaný sa líšia. Ak je nastavený, ProgressBar nenadobúda, ale plynule "jazdí" bez zastavenia. Dá sa nastaviť aj rýchlosť, nájdete ju pod vlastností MarqueeAnimationSpeed.

Marquee ProgressBar nemožno jednoducho zapnúť a je potrebné použiť menšie "trik". Ak chcete, aby sa pohyboval až po aktivovaní, musíte ho predtým nastaviť napr. Na Continuous a potom niekde v kóde zavolať:

progressBar1.Style = ProgressBarStyle.Marquee;

Analogickým spôsobom ho i zastavíte.

progressBar1.Style = ProgressBarStyle.Continuous;

Reset ProgressBar U prevedenia nastavením jeho hodnoty (Value) na 0. Môžeme ho tiež schovať pomocou metódy Hide() a potom pomocou Show() opäť zobraziť. V budúcej lekcii, Vlastné ovládacie prvky v C # .NET , si ukážeme ako si vytvoriť svoj vlastný ovládací prvok.


 

Predchádzajúci článok
Windows Forms - Dialógy
Všetky články v sekcii
Okenné aplikácie v C # .NET vo Windows Forms
Preskočiť článok
(neodporúčame)
Vlastné ovládacie prvky v C # .NET
Článok pre vás napísal Paradise
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Aktivity