IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

15. diel - Windows Forms - Dialógy

V minulej lekcii, Ďalšie ovládacie prvky Windows Forms , sme sa venovali pokročilým ovládacím prvkom WinForms. V dnešnom tutoriálu sa pozrieme na tvorbu menu v okenné aplikáciu a otváranie súborov / priečinkov pomocou dialógov. A tiež na to, ako sa používa MessageBox. To všetko v C# .NET.

MenuStrip

Tento ovládací prvok zaisťuje menu v hornej časti aplikácie. Používa sa veľmi jednoducho. Po jeho pridanie do projektu stačí len vybrať názvy a počet položiek, ako možno vidieť na obrázku. Vo vlastnostiach netreba nič nastavovať. Ďalej stačí na jednotlivé voľby 2x kliknúť a ste v kóde, kde si nastavíte, aká akcia sa po kliknutí myšou na danú položku stane.

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

ToolStrip

ToolStrip je veľmi podobný predchádzajúcemu MenuStrip. Sám o sebe ale nič nerobí a slúži na pridanie niekoľkých ďalších prvkov. Napr. Button, Label, DropDownButton (čo je verzia na MenuStrip), Separator (slúžia na oddelenie) a niekoľko ďalších. Ich nastavenie je opäť veľmi jednoduché, takže u tlačidiel opäť stačí 2x kliknúť myšou a môžete písať kód.

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

ContextMenuStrip

Tento ovládací prvok nájdete popísaný v článku o tray ikonke, takže ju tu uvádzam len pre poriadok. Jedná sa vlastne o menu, zobrazujúce sa po kliknutí na určitú komponent.

Folderbrowserdialog

Ak chcete pracovať v programe so zložkami, je táto komponenta prakticky nutnosťou. Umožňuje intuitívne a jednoduchý výber zložky. Z vlastností je dôležitá hlavne RootFolder, ktorá určuje predvolený priečinok pri otvorení dialógu. Navyše sa nedostanete "späť", pokiaľ teda nastavíte napr. Zložku Dokumenty ako RootFolder, je možné vybrať len podpriečinky dokumentov. ShowNewFolderButton potom určuje, či je možné tvoriť nové zložky.

V kóde sa dialóg otvára metódou ShowDialog(), vybranú zložku potom získame pomocou vlastnosti SelectedPath.

Po vyvolaní dialógu je nutné sa opýtať, či bol ukončený potvrdením, inak by sme danú akciu vykonali aj v prípade, že používateľ dialóg zavrie krížikom alebo tlačidlom Zrušiť. Metóda ShowDialog() nám vždy vráti hodnotu podľa toho, akým tlačidlom bol ukončený.

if (folderBrowseDialog1.ShowDialog() == DialogResult.OK)
{
    string text = folderBrowserDialog1.SelectedPath;
}
C # .NET FileBrowserDialog - Okenné aplikácie v C # .NET vo Windows Forms

OpenFileDialog

Otváranie zložiek sme už prebrali, teraz sú na čase súbory. Postup je takmer rovnaký. Zas komponent pridáme na formulár. Z vlastností do začiatku stojí za zmienku InitialDirectory, čo je prakticky to isté ako vlastnosť RootFolder. Multiselect potom určuje, či je možné vybrať viac súborov. Dialóg sa opäť v kóde otvára metódou ShowDialog() a zvolený súbor získame pomocou vlastnosti FileName.

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

SaveFileDialog

Tento dialóg slúži na ukladanie súborov. Z vlastností stojí za spomenutie FileName, čo je meno výsledného súboru, ďalej InitialDirectory, teda adresár, kde sa dialóg po otvorení bude nachádzať. DefaultExt potom určuje príponu súboru. OverwritePrompt sa zas pýta, či sa má súbor prepísať, ak existuje. Title potom nastavuje názov dialógu. Otvára sa zas metódou ShowDialog().

Ak chcete vykonať ďalšie akcie, použijete udalosti. Konkrétne event FileOk, kde si nastavíte akciu, ktorá sa vykoná za predpokladu, že je všetko v poriadku. Názov súboru získate vlastností FileName.

private void saveFileDialog1_FileOk(object sender, CancelEventArgs e)
{
    File.Create(saveFileDialog1.FileName);
}
C # .NET SaveFileDialog - Okenné aplikácie v C # .NET vo Windows Forms

ColorDialog

Ako možno vyčítať z názvu, tento ovládací prvok má čo robiť s farbami. Jedná sa o dialóg, ktorý umožňuje užívateľovi vybrať farbu. Z vlastností je dôležitá najmä AllowFullOpen, ktorá určuje, či je možné "vytvoriť" vlastnú farbu. Color potom udáva, aká farba bude defaultný po otvorení dialógu. Dialóg sa opäť otvára metódou ShowDialog().

Farbu potom získame vlastností Color. Kód nižšie vyfarbia pozadia okna zvolenou farbou.

if (colorDialog1.ShowDialog() == DialogResult.OK)
{
   this.BackColor = colorDialog1.Color;
}
C # .NET ColorDialog - Okenné aplikácie v C # .NET vo Windows Forms

FontDialog

Tento dialóg je veľmi podobný tomu na výber farieb. Akurát tu vyberáte font písma, čo sa dá odvodiť z jeho názvu. Len pre poriadok pripomeniem, že sa otvára metódou ShowDialog(). Z jeho vlastností sú dôležité MinSize a MaxSize, kde si môžete nastaviť, aká veľkosť pôjde vybrať (0 je pre neobmedzenú). ShowEffect potom dovoľuje vybrať podčiarknutie alebo prečiarknutie a ShowColor výber farby fontu.

Font získame vlastností Font, a ak vyberáme farbu, musíme ju získať zvlášť pomocou vlastnosti Color. Tu je ešte ukážka:

if (fontDialog1.ShowDialog() == DialogResult.OK)
{
   label1.Font = fontDialog1.Font;
   label1.ForeColor = fontDialog1.Color;
   label1.Text = “Tohle je vybraný font“;
}
C # .NET FontDialog - Okenné aplikácie v C # .NET vo Windows Forms

MessageBox

Síce sa nejedná o ovládací prvok, ale napriek tomu si tu svoje miesto zaslúži. Je to ten pop-up dialóg, ktorý vyskakuje napr. Keď vykonávate nejakú neštandardnú činnosť ako je vysypanie koša.

Nasledujúci kód:

MessageBox.Show("Toto je hlavní text okna se zprávou", "Název okna", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

Má za následok vyvolanie dialógu nižšie:

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

Prvý text je teda správa, druhý názov okna a MessageBoxButtons určuje, aká tu budú tlačidlá, na výber je samotné OK, OK a Cancel, Áno a Nie apod. MessageBoxIcon sa stará o ikonku vľavo vedľa textu. Opäť ich je na výber niekoľko. Niektoré parametre je možné vynechať.

Určite by bolo dobré vedieť reagovať na tlačidlá v MessageBox u, že? To si hneď ukážeme.

Nejde o žiadnu vedu. Celý kód s MessageBoxem ** obalíme do if a pridáme == DialogResult.OK `.(kde `OK je požadované tlačidlo). Tým pádom sa daná akcia v podmienke vykoná iba pri výbere konkrétneho tlačidla.

Nižšie je ukážka:

DialogResult dr = MessageBox.Show("Opravdu smazat?", "Potvrzení", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
if (dr == DialogResult.OK)
{
    // ...
}

V budúcej lekcii, Ovládacie prvky Windows Forms štvrtýkrát , si predstavíme napr. Pokročilé textbox, časovač alebo progressbar.


 

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