NotifyIcon

W tym wpisie przedstawię wam ciekawą możliwość minimalizacji(ukrycia działania) waszego programu za pomocą NotifyIcon, jest to obiekt z naszego przybornika który daje nam możliwość zwinięcia naszego programu do zasobnika systemowego, co daje mu możliwość działania w tle. Pewnie niektórzy z was zastanawiają się co to jest „zasobnik systemowy”. Są to te małe ikonki obok godziny na pasku zadań.

Notifyicon1

 

a w Visualu w przyborniku wygląda to tak:

Notifyicon2

 

Dobra, tworzymy nowy projekt i przeciągamy „NotyfiIcon” na niego. Powinniśmy osiągnąć efekt jak na obrazku:

Notifyicon3

NotyfiIcon ma swoje właściwości które zaraz wykorzystamy.

Notifyicon4

 

Najpierw sprawimy, że nasz program będzie się poprostu chował do zasobnika. Musimy dodać mu jakąś ikonę. Najlepiej zrobić to w programie do robienia ikon, znajdziecie taki w dziale downloads. Nasza ikona musi mieć wymiary 32×32 piksele i rozszerzenie typu *.ico. Wracamy do właściwości naszego NotyfiIcon i w miejscu „Icon” znajdujemy naszą ikonę. Zmieniamy również we właściwościach opcje Visible na „false”

Notifyicon5

Dodajemy do formy przycisk i robimy do niego uchwyt następnie wypełniamy go kodem:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If NotifyIcon1.Visible = False Then
            NotifyIcon1.Visible = True
            Me.Hide()
        End If
    End Sub

Wracamy do projektanta i we właściwościach „NotifyIcon1” przełączamy na zdarzenia (taki mały piorun) i znajdujemy zdarzenie „MouseClick” przyciskamy dwukrotnie lewy przycisk myszki na puste pole obok „MouseClick”

Notifyicon10

 

Automatycznie powinno nas przenieść do kodu i automatycznie powinno utworzyć nam uchwyt. Wypełniamy go kodem

    Private Sub NotifyIcon1_MouseClick(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseClick
        Me.Show()
        NotifyIcon1.Visible = False
    End Sub

efekt powinien być taki:

Notifyicon7

Po przyciśnięciu przycisku „Schowaj”:

Notifyicon8

nasz program działa w tle. Teraz przyjrzymy się dodatkowym możliwościom NotifyIcon:

– Jeśli do pętli chowającej program dodamy:

 If NotifyIcon1.Visible = False Then
            NotifyIcon1.Visible = True
            NotifyIcon1.ShowBalloonTip(2, "Praca w tle...", "Program pracuje w tle. Aby przywrócić okno programu kliknij tutaj!", ToolTipIcon.Info)
            Me.Hide()
        End If

Wygląda to tak, po kliknięciu przycisku schowaj program chowa nam się i w dymku pokazuje komunikat:

Notifyicon9 NotifyIcon1.ShowBalloonTip(„jak długo ma być wyświetlana wiadomość” , „treść wiadomości”,  „rodzaj chmury”)

Rodzaje chmurek (ToolTipIcon.)

– info – informacyjna

– warning – ostrzeżenie

– error – błąd

Warto też zmienić NotifyIcon.Text na jakiś informacyjny aby jak użytkownik najedzie na ikonę miał jakieś konkretne informacje np

NotifyIcon1.Text = "&Pokaż okno programu"

Teraz dodamy sobie menu do naszej ikony. Będzie to wyglądać tak, że użytkownik po przyciśnięciu prawym przyciskiem myszy  dostanie listę opcji które może wykonać. Wygląda to tak:

Notifyicon11W obecnej chwili mamy tak, że gdy naszą ikonę w zasobniku klikniemy lewym albo prawym przyciskiem myszy pojawi nam się okno programu. Musimy to rozdzielić na dwa zdarzenia. Jeśli użytkownik przyciśnie lewy przycisk myszki otwiera mu się program jeśli prawy otwiera się menu programu. aby to zrobić w zdarzeniu MouseClick dodajemy:

    Private Sub NotifyIcon1_MouseClick(sender As Object, e As MouseEventArgs) Handles NotifyIcon1.MouseClick
        If e.Button = Windows.Forms.MouseButtons.Left Then
            Me.Show()
            NotifyIcon1.Visible = False
        End If
    End Sub

Teraz Forma pokażę się nam tylko po kliknięciu lewym przyciskiem myszki a prawy nie będzie miał żadnego efektu. Utworzymy sobie teraz nasze menu. Wracam do projektanta i w przyborniku znajdujemy „ContextMenuStripe”

Notifyicon12

I przenosimy go na naszą formę. Po przeniesieniu powinien pojawić się obok NotifyIcon1 po jego naciśnięciu na naszej formie pojawi się widmo naszego menu do którego dodajemy elementy listy menu.

Notifyicon13

Wygląda to tak jak na obrazku powyżej. Teraz należy to menu podpiąć do naszej NotifyIcon1. Aby to zrobić musimy przejść do właściwości NotifyIcon1 i ustawić w opcji „ContextMenuStrip” nasze menu. Tak jak na obrazku.

Notifyicon14

Po uruchomieniu nasz program powinien mieć już w pełni funkcjonalne menu. Jeśli mieliście jakieś problemy można pobrać program tutaj:  NotifyIcon

Permalink do tego artykułu: https://visualmonsters.cba.pl/notifyicon/

Dodaj komentarz

Twój adres email nie będzie publikowany.