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)
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.