Tray ikona v C #
Včera som si chcel do mojej aplikácie pridať tray ikonu, ale bohužiaľ nevedel som ako na to, tak som začal googlit a bádať ako to vlastne funguje. Je to tak jednoduché, až som tomu nemohol uveriť. Myslím že nebude na škodu, keď to tu bude.
Čo je to vlastne tray ikona?
Tray ikona je vlastne "taká tá malá ikonka v pravo v lište". Slúži pre urýchlený prístup a tak podobne, každý určite vie. Myslím, že je to aj oveľa lepšie pre prehľadnosť.
Takže vytvoríme si nový projekt Windows Form Application, názov si zvolíme ľubovoľne napríklad "tray ikonka". Upravíme si okno podľa svojho gusta. Potom si otvoríme Toolbox a pridáme do nášho projektu notifyIcon. Náš projekt by teda mal vyzerať nejako takto.
Teraz budeme editovať properties notifyIcon1. Vyberieme si teda nejakú ikonku, ktorú chceme aby sa zobrazovala medzi ostatnými tray ikonami. Teraz ak zapneme aplikáciu, tak môžeme vidieť našej tray ikonu medzi ostatnými v lište.
Aby to nebolo takhle suché a určite každý bude chcieť aby "keď minimalizujú okno" tak aby zmizlo a zostala nám len tray ikonka.
To sa robí nasledovne: Vyberieme Form1 properties vyberieme si event-resize. Do neho zapíšeme nasledujúce.
private void Form1_Resize(object sender, EventArgs e) { if (FormWindowState.Minimized == this.WindowState) { this.Hide(); } else if (FormWindowState.Normal == this.WindowState) { // co chcete, aby se stalo, když bude form1 v normálním módu. Např. notifyIcon.Visible = false; } }
Teraz keď spustíme aplikáciu a minimalizujeme jej, tak sa nám schová a zostane len naše tray ikonka. Teraz sa vrátime späť na properties notifyicon a vyberieme event, treba double mouse click. Do neho zapíšeme:
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) { this.Show(); }
Ale ako ste si určite všimli, teraz keď spustíme aplikáciu, minimalizujeme jej a nahodíme späť cez tray ikonku, tak vlastne sa objaví ... ale len na lište ako ikonka a musíme jej rozkliknúť aby sa nám ukázal dialóg. To je pretože keď sme jej minimalizovali, tak vlastne zostala minimalizovaná a tak sa nám aj vyvolá späť minimalizovaná. To ošetríme pridaním nasledujúceho príkazu do mouse double click na notifyicon.
WindowState = FormWindowState.Normal;
Takže by to malo vyzerať nasledovne:
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) { this.Show(); WindowState = FormWindowState.Normal; }
Ako vidíme, všetko už je teraz v poriadku. Teraz si ešte ukážeme posledná vec a síce menu po kliknutí pravým tlačidlom myši na tray ikonku. Do projektu pridáme z Toolbox "ContextMenuStrip". Potom si do menu vložíme nejaké tie hodnoty, ja som zvolil "menu1, menu2, koniec".
Klikneme na notifyIcon1 properties -> ContextMenuStrip a vyberieme práve naše menu. Ja som len do menu koniec zapísal:
this.Close();
Aby sa nám aplikácia ukončila, každý si urobí menu podľa seba, ako je potrebné. Teraz spustíme aplikáciu, pravým tlačidlom klikneme na tray ikonku atadá, je tam práve naša menu, ktoré možno jednoducho modifikovať.
Ako posledný bod by som vám chcel ešte ukázať, ako vlastne v tray ikone vyvolať takú tú informačnú bublinu. Opäť otvoríme notifyicon properties a nastavíme BalloonTipIcon na hodnotu Info. Teraz BalloonTipText slúži k nejakému tomu infu, teda nejaké informáciu, ktorú chcete oznámiť. BalloonTipTitle je titulok bubliny.
Do aplikácie si pridáme nejaký čudlík (button). Klikneme na neho, aby sa nám otvoril kód "čo sa stane, keď na tlačítko kliknem ..." a zapíšeme nasledujúce.
private void button1_Click(object sender, EventArgs e) { notifyIcon1.ShowBalloonTip(5000); }
5000 je doba ako dlho sa má info ukazovať ... 5000 je samozrejme 5 sekúnd. No a konečne spustíme aplikáciu a klikneme na "tlačítko". Tadao, info sa nám teda naozaj zobrazí.
Stiahnuť
Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami
Stiahnuté 453x (98.34 kB)
Aplikácia je vrátane zdrojových kódov v jazyku C#