Sluiten naar tray

Status
Niet open voor verdere reacties.

michael64142

Gebruiker
Lid geworden
12 okt 2012
Berichten
71
Hi,

Mijn applicatie sluit nu naar de tray als de gebruiker op het afsluit kruisje (X) duwt. Echter, mijn programma heeft ook de mogelijkheid dat de gebruiker zelf een achtergrond kan instellen.
Voordat deze achtergrond weergegeven word, moet het form gesloten en weer geopend worden.
Dit doe ik door hem te sluiten (Me.Close) en een ander form te openen die dan weer het echte form opent (het form dat gesloten werd).
Echter word de achtergrond niet gerefresht omdat de applicatie dan in tray gezet word, en weer geopend word (hij wordt dus niet echt afgesloten).

Ik heb al geprobeerd UserClosing te gebruiken, maar dit heeft niet geholpen.

Ik heb onderstaande code voor het tray bericht.
Code:
 e.Cancel = True
            Me.Hide()
            NotifyIcon1.BalloonTipTitle = "WeReminder"
            NotifyIcon1.BalloonTipText = "Programma afgesloten naar tray."
            NotifyIcon1.ShowBalloonTip(5000)
Deze code staat geplaatst onder: Form1_FormClosing

Hoe zorg ik nu dat mijn applicatie zichzelf wel kan sluiten, zonder dat deze dan in tray gaat. En dat als de gebruiker op de X duwt, dat hij dan wel in tray gaat?
 
Ik snap het niet helemaal wat je bedoeld maar mischien helpt dit?
Formdiejewilsluiten.close
 
Hoi,

Je kan misschien een boolean aanmaken die False is als de user zelf op het kruisje duwt en op True staat als je dat met code doet. Dan kan je bij het formclose event met een if-statement checken of het programma nou wel of niet naar de tray moet.

Ik hoop dat het een beetje duidelijk is...

MartinJM
 
Zou je me op weg kunnen helpen? :rolleyes:
 
Laatst bewerkt door een moderator:
Zoiets zou denk ik wel kunnen werken:
[CPP] Private FormRestart As Boolean = False

Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Not FormRestart Then
e.Cancel = True
Me.Hide()
NotifyIcon1.BalloonTipTitle = "WeReminder"
NotifyIcon1.BalloonTipText = "Programma afgesloten naar tray."
NotifyIcon1.ShowBalloonTip(5000)
Else
''//Form opnieuw openen

FormRestart = False
End If
End Sub

Private Sub RestartForm()
FormRestart = True
Me.Close()
End Sub[/CPP]

MartinJM
 
Het form word gesloten vanuit een ander form (Settings.VB), en de settings.vb opent LangSwitch.VB. In langswitch.vb (form_load) word het hoofd form weer geopend.

LangSwitch.vb:

Code:
Public Class Langswitch

    Private Sub Langswitch_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim lang As String
        lang = My.Computer.Registry.GetValue _
            ("HKEY_CURRENT_USER\Software\WeReminder", "lang", Nothing)

        If lang = "nl" Then
            ApplicationNL.Show()
            Me.Close()
        End If

        If lang = "en" Then
            Application.Show()
            Me.Close()
        End If
    End Sub
End Class


Waar moet jouw restart=true stukje dan komen te staan?

Code:
Private Sub RestartForm()
        FormRestart = True
        Me.Close()
    End Sub
 
Hoi,

Vlak voor het punt waar je het hoofd-form sluit. In de code staat namelijk waarschijnlijk iets van "Me.Close()" zodat het form daarna geopend kan worden. De regel daarboven zet je dan "FormRestart = True".

Je moet dan nog wel zorgen dat het form opnieuw geopend wordt, want dat zit niet bij de codes die ik je gegeven heb.

MartinJM
 
Het hoofd-form word gesloten vanuit een ander form (settings). Het settings form opent dan een ander form (langswitch). Langswitch opent dan de hoofd-form weer.

Moet het
Code:
"Private Sub RestartForm()
        FormRestart = True
        Me.Close()
    End Sub" stuk dan in hoofd-form, settings, of langswitch?
 
Laatst bewerkt door een moderator:
Aha,

Het hoofd-form wordt dus gesloten vanuit een ander form?

Verander dan "Private FormRestart As Boolean = False" naar "Friend FormRestart As Boolean = False". Dan kan je daarna de volgende code gebruiken om het form te sluiten, dus in settings:
Code:
HoofdForm.FormRestart = True
HoofdForm.Close()

In langswitch moet je het form dan weer normaal openen.

MartinJM

[edit]
Zorg er wel voor dat je programma niet afsluit als het hoofdform gesloten is, maar als alle forms gesloten zijn. Dat zit ergens in de project properties.
[/edit]
 
Laatst bewerkt:
Thanks, ga het direct proberen!

Dat is meestal het eerste dat ik doe bij een nieuw programma, de programma sluiten als laatste form sluit ;).
Zal status op opgelost zetten als het werkt.
 
Laatst bewerkt door een moderator:
@michael64142 Onnodige quotes verwijderd. Wanneer je direct reageert op een reactie is het niet nodig om dat bericht te quoten. Onnodig quoten heet dat, hetgeen niet gewenst is.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan