NotifyIcon + problème [Résolu]

Signaler
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
-
Bonjour à tous,



J'ai une form qui sert à se loguer et qui s'appelle "form_se_loguer" et
quand l'utilisateur se loguer sa lance une autre form qui s'appelle
"Form1" et dans Form1 je créer un notifyicon et quand Form1 est quitter
il se passe ceci :



Quand on appui sur se loguer dans form_se_loguer :



// si login et mot de passe correct alors :



this.Visible = false ; // form se loguer devient invisible

Form1 form1 = new Form1(bdd) ; // form1 est crée

form1.ShowDialog() ; // form1 est lancé

this.Visible = true ; //quand form1 est quitter form_se_loguer redevient visible



Ca marche, mais ce que je comprends c'est que mon notifyIcon créer dans
form1 reste visible quand form_se_loguer redevient visible. Non
seulement il est visible mais il est actif egalement, le menu
contextuel qui lui est associé fonctionnent encore.... et si je me
relogue et que je requitte form1 y'en aura un nouveau qui va apparaiter
et ainsi de suite.



A votre bon coeur...

8 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Salut,

Ce code devrait suffire à résoudre ton problème :
protected override void OnClosed(EventArgs e)
{
notifyIcon.Dispose(true);
base.OnClosed (e);
}

/*
coq
MVP Visual C#
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
base représente la classe de base, ici Form.
base.OnClosed(e); nous permet de repasser la main au traitement "normal" qui est effectuer par la classe de base dont on override la méthode OnClosed.

Pour le message d'erreur, je me suis trompé de surcharge :p
à la place utilise :
notifyIcon.Visible = false;
NotifyIcon.Dispose();

/*
coq
MVP Visual C#
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Si, mais à la fermeture du précédent il supprime l'icône existante.

/*
coq
MVP Visual C#
*/
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
ok, merci bien
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
y'a juste un truc en faite, dans la ligne :



base.OnClosed (e);



Que represente "base" ?
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
pour : notifyIcon.Dispose(true);



il me marque "impossible d'acceder à protected membre déclaré dans la classe System.Windows.Form.NotifyIcon"
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
ok, merci ca marche ce coup ci, grâce à dispose() en faite il me recréera plus un notifyicon a chaque lancement de Form1 ?
Messages postés
903
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
16 juin 2010
2
ok, merci