C# - Menus, ToolBars and Dialogs Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí
Vytváření základního menu aplikace Buď pomocí IDE (WYSIWYG) nebo přímo programovým kódem
Menu Step by Step 1. vytvořte novou windows aplikaci a vlastnosti na formuláři nastavte takto: 2. V panelu ovládacích panelů najděte ovládací prvek MenuStrip a přidejte ho na Váš formulář. Vytvořte menu tak, že bude obsahovat v základní nabídce pouze položku Soubor (Otevřít, Uložit, Ukončit) nastavte pomocí znaku & přístup na položku menu Soubor tak aby odpovídala klávesové zkratce Alt+S. Použijte separátor pro oddělení položky menu Ukončit. PropertyValue TextMyTextPad MaximizeBoxFalse FormBorderStyleFixed3D
3. Přiřaďte klávesové zkratky Ctrl+S (save), Ctrl+O (open), Ctrl+E (exit) odpovídajícím položkám menu.
4. K psaní kódu jednotlivým položkám menu musí být přiřazeno jméno. IDE přiřazuje tento název automaticky. Jméno můžeme změnit úpravou vlastnosti NAME. Použijeme následující konvenci: - mnu prefix bude označovat menu. Všimněte si konvence pojmenování a sami pojmenujte případné další položky menu. MenuName SoubormnuFile - OtevřítmnuFileOpen - Uložit jakomnuFileSaveAs - UložitmnuFileSave - UkončitmnuFileExit
5. Vylepšete vzhled menu přidáním obrázků do menu. Spusťte uloženou aplikaci a ověřte Vámi vytvořený design menu. Vámi vytvořené menu ještě stále nemá přidanou funkčnost, což bude předmětem pokračování naší činnosti současně s vysvětlením funkčnosti základních dialogových oken a přidáním ToolBaru do aplikace.
Toolbars Obvykle slouží k rychlejšímu přístupu k určitým funkcionalitám programu a s jeho pomocí je spuštěna stejná činnost jako přes položku v menu. Použijeme ovládací prvek ToolStrip
6. přidejte na ToolBar tlačítko a nastavte jeho vlastnosti: - přiřaďte obrázek odpovídající ikoně pro ukládání do souboru - ToolTipText property nastavte na text „Uložení textu do souboru“ - Name property změňte na toolStripButtonSave Pozn.: ToolBar tlačítka se nevytváří pro všechny položky menu ale pouze pro nejčastěji využívané – můžete mít několik ToolBarů a dát uživateli možnost využívat právě ty, které v daný okamžik potřebuje. Pro zpřehlednění ToolBaru je možné využít oddělovač.
Common dialogs Common dialogs jsou dialogová okna, která většina Windows aplikací zobrazuje při určitých činnostech (uložení do souboru, výběr adresáře, paleta barev,…)
Common dialogs - vlastnosti C# nabízí některé užitečná dialogová okna V našem programu použijeme dvě pro otevření a pro uložení souborů 6. Přidejte OpenFileDialog na Vámi vytvořený formulář. Defaultní jméno dialogu bude OpenFileDialog1. Jméno je použito k přístupu k danému prvku v programovém kódu. Uvedený název můžete změnit. 7. Nastavte vlastnosti dialogu dle následující tabulky: PropertyValue FiltrTato vlastnost určuje typy souborů, které bude možno otevřít ve vytvářené aplikaci. Aplikace bude pracovat se soubory.rtf, nastavte Filter property na- RTF Files | *.rtf FileName*.rtf ShowReadOnlyTrue – Zobrazí check box, který umožní otevřít soubory pouze pro čtení. TitleNázev dialogového okna – použijeme „Open file“
8. Přejděte do zdrojového kódu formuláře a přidejte privátní proměnnou myFile, kterou inicializujte počáteční hodnotou „newfile“. Přidejte následující funkci: void OpenFile() { if (openFileDialog1.ShowDialog() == DialogResult.OK) { myFile = openFileDialog1.FileName; richTextBox1.Clear(); //funkce LoadFile objektu richTextBox nacte soubor z cesty uvedené jako parametr richTextBox1.LoadFile(myFile); }
9. Analogickým způsobem přidejte do Vaší aplikace SaveDialog a nastavte jeho property podle tabulky: 10. přepněte se do zdrojového kódu a přidejte následující funkce void ShowSaveAs() { if (saveFileDialog1.ShowDialog() == DialogResult.OK) { myFile = saveFileDialog1.FileName; FileSave(); } } PropertyValue FileName*.rtf FilterRTF File|.rtf TitleSave File As
void FileSave() { //objekt environment poskytuje informace o aktuálním prostředí a platformě //metoda GetFolderPath umožňuje převod "cesty adresáře" na řetězec //při otevření dialogu pro ukládání bude nastavena cesta defaultně na adresář //MyDocuments saveFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); try { //funkce SaveFile objektu richTextBox ukládá obsah richEditu do souboru, který je //specifikován prvním parametrem, druhý parametr určuje typ výstupního toku //dat pro richTextBox richTextBox1.SaveFile(saveFileDialog1.FileName,RichTextBoxStreamType.RichText); } catch (IOException ex) { MessageBox.Show(ex.Message); } }
private void ToolStripMenuItemSave_Click(object sender, EventArgs e) { if (myFile == "newfile") { ShowSaveAs(); } else { FileSave(); } private void toolStripMenuItemSaveAs_Click(object sender, EventArgs e) { ShowSaveAs(); }
Defaultní adresáře Desktop – použijte pro uložení souboru na plochuUse Programs – Úložiště programů ve Windows. MyComputer – Pravděpodobně ne často využívaná. MyMusic – ukládání a vyhledání mediálních souborů. MyPictures – ukládání obrázků. StartMenu – Start menu je adresář a toto je jeho umístění. Startup – pro aplikace, které se mají spustit při startu. (Může být určen i pro kontrolu, které aplikace běží). DesktopDirectory – jiná cesta na plochu. MyDocuments – používána zejména aplikacemi MS Office ke skladování dokumentů. Např.: openFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
Doplnění našeho formuláře o Print dialog a Color dialog Print dialog – Využívá funkce objektu: using System.Drawing.Printing; -V našem příkladu je použití Print dialogu obtížnější z důvodu neexistence metody prvku rich textbox, která umožňuje přímo tisk -K zakomponování metody print obsahu rich text editboxu využijte následující postup : Podle návodu na uvedeném odkazu doplňte funkčnost na tisk obsahu prvku RichTextBox
Color dialog: – umožňuje spustit dialogové okno s paletou barev, krom nabídky defaultních barev může uživatel vytvářet barvy vlastní 12. Doplňte ColorDialog do Vašeho programu, doplňte tlačítko odpovídající tomuto prvku do ToolBaru Vašeho formuláře a doplňte následujících metody do Vašeho zdrojového kódu. void ChangeBackColor() { if (colorDialog1.ShowDialog() == DialogResult.OK) { //nastavím barvu pozadí na barvu vybranou v dialogovém okně richTextBox1.BackColor = colorDialog1.Color ; } private void toolStripButtonColor_Click(object sender, EventArgs e) { ChangeBackColor(); }
Závěr Step by Step návrhu Menu, Toolbar menu a Dialogových oken Na právě skončeném programu jste si připravili základ pro jednoduchý textový editor. Uvědomte si, proč je zejména uložení souboru naprogramováno pomocí dvou funkcí a korektnost funkčnosti programu otestujte.
19 Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí Použité materiály: Kniha: Programujeme profesionálně, nakladatelství WROX, autor: Jay Glynn,… Seriály o programování v jazyce C# :