14. MainMenu, časové funkce, ovládací prvky
Přidal/a Jarda dne November 18 2010 17:35:01
V této kapitole na chvíli opustíme matematiku . Vrátíme se k formuláři. Ovládací prvek MainMenu je nástroj, který můžeme přidat do svého programu nabídky, které samozřejmě můžeme přizpúsobit nastavením vlastností v okně vlastností.. Do nabídek můžeme přidávat speciální efekty – klávesové zkratky, přístupové klávesy atd. Více už v následujícím příkladu:


Vytvoření nabídky

Klepneme na nástroj MenuStrip



Objekt hlavní nabídky se neobjeví na formuláři, ale v tzv. Podnose či podokně součástí.
V horní části formuláře se zobrazí vizuální reprezentace nabídky se zástupným textem „Type Here“
Lze vytvořit libovolná uživatelská rozhranní – vyzkoušejte!

Je zvykem, že aplikace se dají spouštět pomocí Alt + klávesa. Upravíme naši nabídku – před písmeno, které má spouštět nabídku, vložíme znak &. (Viz obr. výše)
Pořadí prvků v nabídce můžeme změnit prostým přetažením.


Příkazy zvolené v nabídce
Jako příklad jsem zvolil některé časové funkce (více v nápovědě programu Visual Basic.Net)


Náš „program“ (spíše jen formulář) zatím vypadá takto:





Dalšími ovládacími prvky budou OpenFileDialog a ColorDialog



Nejdříve ale přidáme nabídku Soubor (Na formuláři vpravo od nabídky Čas vyplníme vpravo od nabídky Type Here). Vytvoříme nabídky Otevřít, Zavřít a Exit. Na závěr přetáhneme nabídku Soubor na nabídku Čas, a tím ji přesuneme na první místo v pruhu nabídek. Pomocí znaku & označíme přístupové klávesy.


Změníme vlastnosti nabídky Soubor (Name: mnuFile), Otevřít (Name: mnuOpenItem), Zavřít (Name: mnuVloseItem), Exit (Name: mnuExitItem)


Je obvyklé, že ne všechny prvky nabídek jsou stále přístupné. V našem projektu nabídka Soubor bude otevírat bitmapové obrázky a pokud žádný není otevřený, není také co zavírat. Do událostní procedury Otevřít můžeme přidat příkaz programu, který v patřičném okamžiku příkaz Zavřít zpřístupní. My ho ale zatím znepřístupníme nastavením vlastnosti Enables objektu mnuCloseItem na False.


Do formuláře ještě přidáme PictureBox (s ním jsme již pracovali, vlastnost SizeMode: StretchImage)


Událostní procedury řídící dialogová okna
K příkazu Otevřít zapíšeme tuto událostní proceduru
OpenFileDialog1.Filter = "Bitové mapy (*.jpg)|*.jpg"
If OpenFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then
PictureBox1.Image = System.Drawing.Image.FromFile(OpenFileDialog1.FileName)
mnuCloseItem.Enabled = True
End If


Pokud spustíme program, vidíme, že se opravdu zobrazí klasická nabídka pro otevření souboru. Všimněte si, že se nabízí Soubory typu *.jpg. Způsobuje to tato část kódu:


OpenFileDialog1.Filter = "Bitové mapy (*.jpg)|*.jpg"


Můžeme dopnit i jiné typy souborů:


OpenFileDialog1.Filter = "Bitové mapy (*.jpg)|*.jpg|Obrázky Windows (*.bmp)|*.bmp"





V dalším řádku dojde k dialogu okna Otevřít – testujeme, jaké tlačítko uživatel stiskl. V dalším řádku jde o samotné otevření souboru. A o zpřístupnění příkazu Zavřít jsem se již zmínil.


Dále pokračujeme příkazem Zavřít (Není asi třeba vysvětlovat):
PictureBox1.Image = Nothing
mnuCloseItem.Enabled = False

Posledním je příkaz Exit:
End


Sami si můžete zkusit doplnit k naší nabídce Čas doplnit příkaz Přebarvit text:
ColorDialog1.ShowDialog()
lblText.ForeColor = ColorDialog1.Color




Klávesové zkratky prvků nabídek
V běžné praxi se setkáváme u často využívaných funkcí s jejich vyvoláním pomocí kombinace kláves (např. Kopírování do schránky Ctrl + C)


V ovládacím prvku MenuStrip k tomu slouží vlastnost ShortcutKeys. Zkusíme přiřadit Dnešnímu datu zkratku Ctrl+Shift+D a Aktuálnímu času zkratku Ctrl+Shift+T




Úkoly:
1.Upravte některý z vašich předchozích programů – zkuste třeba některé funkce programu vykonávat z nabídky.