Actief blijven

Status
Niet open voor verdere reacties.

Helogat

Gebruiker
Lid geworden
22 apr 2008
Berichten
808
Hallo
Ik heb een programma gemaakt.
Ik wil graag dat als je op het kruisje klikt, Het programma niet gesloten wordt maar dat er dan een klein pictogrammetje in het systeemvak verschijnt.
Kan iemand mij helpen?

Het pictogram moet ook zichtbaar zijn als het programma geopend is
 
Welke VB versie?

In VB2005 kun je werken met NotifyIcon. En als iemand op de Close button (het kruisje) klikt dan kun je die afvangen en dat dan cancelen. Vervolgens laat je het formulier verbergen.

Code:
Code:
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    e.Cancel = True
    Me.Hide()
  End Sub

Voor wat betreft het icoontje in de 'system tray' kun je het 'NotifyIcon' component gebruiken. Voeg die to aan je formulier en selecteer een icoontje ervoor (via property 'icon').

In de Form_Load zet je de .visible property op True, zodat die altijd zichtbaar is. Vervolgens kun je het DoubleClick() event gebruiken om te kijken of je het formulier opnieuw wilt tonen (als die niet zichtbaar is).

De code is:
Code:
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    NotifyIcon1.Visible = True
  End Sub

  Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
    If Me.Visible = False Then Me.Show()
  End Sub

Succes met het programmeren!
 
Dat werkt goed maar hoe kan ik het nu maken dat als je met rechts op het NotifyIcon klikt dat er dan een snelmenu komt waar 3 dingen in staan:

Weergeven: Dan moet Form 1 worden weergegeven

Help: Dan moet Form 2 worden weergegeven

Afsluiten: Dan moet het programma afgesloten worden
 
Tja, dan moet je dus een popup menu maken dat geactiveerd wordt bij het rechtermuisklikken op het notify icon.
 
Ik heb in een progie ergens deze code die 1 knop toevoegd ;)

Code:
        Dim contectSTrip As New ContextMenuStrip
        With contectSTrip
            .Items.Add("Exit", icoToImg(My.Resources.Stop_2), New EventHandler(AddressOf tmiExit_Click))
        End With

        appNotifier.ContextMenuStrip = contectSTrip
 
Ik heb in een progie ergens deze code die 1 knop toevoegd ;)

Code:
        Dim contectSTrip As New ContextMenuStrip
        With contectSTrip
            .Items.Add("Exit", icoToImg(My.Resources.Stop_2), New EventHandler(AddressOf tmiExit_Click))
        End With

        appNotifier.ContextMenuStrip = contectSTrip
waar moet ik die code plaatsen?



Tja, dan moet je dus een popup menu maken dat geactiveerd wordt bij het rechtermuisklikken op het notify icon.

hoe maak je dat popup menu
 
hoe maak je dat popup menu
>> dat kan je uit mijn vorige post aflijden :)

waar moet ik die code plaatsen?
>> Kan je mss even je volledige code posten, dan plak ik het er wel op de juiste plaats in met wat kommentaar erbij ;)
 
hier is dan de volledige code van Form 1:
Code:
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        NotifyIcon1.Visible = True
    End Sub
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        e.Cancel = True
        Me.Hide()
    End Sub
    Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick
        If Me.Visible = False Then Me.Show()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        AboutBox1.Show()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Application.Exit()
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
        NotifyIcon1.Visible = True
    End Sub

    Private Sub NotifyIcon2_BalloonTipShown(ByVal sender As Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub NotifyIcon2_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)

    End Sub

    Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
        NotifyIcon1.Visible = True
    End Sub

    Private Sub NotifyIcon2_MouseDoubleClick_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon2.MouseDoubleClick
        AboutBox1.Show()
    End Sub
End Class

misschien fijn als je die code kunt plaatsen want ik heb al wat met codes geknoeid maar toen liep alles vast en kreeg ik allemaal foutmeldingen (zoals meestal bij zelfbedachte codes!!!)
 
Dit werkt. Je moet wel ff via designer een icon voor je notifier instellen natuurlijk

Code:
Public Class Form1

    'Word uitegvoerd bij het opstarten van je programma
    Public Sub New()
        InitializeComponent()
        NotifyIcon1.Visible = False
        addNotifierMenu()
    End Sub

    'Voeg een menu toe aan je notifier met een sluit knop (krijg je te zien bij rechts-klikken)
    Private Sub addNotifierMenu()
        Dim contectSTrip As New ContextMenuStrip
        With contectSTrip
            'Je moet zelf een afbeelding als recource toevoegen om te kunnen gebruiken
            .Items.Add("Exit", My.Resources.sluiten, New EventHandler(AddressOf tmiExit_Click))
        End With

        NotifyIcon1.ContextMenuStrip = contectSTrip
    End Sub

    'Sub die word uitgevoerd als er op de sluitknop word geklikt
    Private Sub tmiExit_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        End
    End Sub

    'Verberg je form ipv van te sluiten en toon de notifier
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        e.Cancel = True
        Me.Hide()
        NotifyIcon1.Visible = True
    End Sub

    'Toon je form bij dubbelklikken op de notifier, en verberg deze
    Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) _
    Handles NotifyIcon1.MouseDoubleClick
        NotifyIcon1.Visible = False
        Me.Show()
    End Sub

End Class
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan