NotifyIcon + problème...

cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 18 nov. 2005 à 16:19
cs_Smalo Messages postés 36 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 11 décembre 2006 - 20 nov. 2005 à 00:28
Salut à tous,



J'ai encore un problème avec notifyicon ca ressemble un peut à celui
resolu par coq y'a pas longtemps sauf que là c'est pas vraiment pareil,
faut bien varier les plaisirs :



J'ai form1 et form2 :



Form1 sert pour se loguer :



// si login et mot de passe correct alors :

this.Visible = false ; // form se loguer devient invisible
Form2 form2 = new Form2(bdd) ; // form2 est crée
form2.ShowDialog() ; // form2 est lancé
this.Visible = true ; //quand form2 est quitter ou devient invisible



et form2 contient un notifyicon



et en faite dans form2 quand je clique sur la croix form2 devient
invisible de manière à ce qu'il reste juste le notifyicon, le problème
c'est que ce si form2 est invisible le code souligné plus haut se
declenche donc ma form1 redevient visible...



A votre bon coeur

9 réponses

cs_Smalo Messages postés 36 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 11 décembre 2006
18 nov. 2005 à 16:54
Satut, tiens je te file mon code que j'utilise pour gérer ma notify icon je sais pas si sa te serviras car j'ai pas tout pigé à ton problème...

mais bon .. :)

private void
Form1_Resize(
object
sender, System.EventArgs e)

{
if (
this
.WindowState == FormWindowState.Minimized)

this.cacherForm();
}


private
void
RevoirForm()

{
this.ShowInTaskbar =
true
;

this.Show();

this.WindowState = FormWindowState.Normal;

this.invisible =
false
;

this.BringToFront();

}


private
void
cacherForm()

{
this.ShowInTaskbar =
false
;

this.Hide();

this.invisible =
true
;

}


private
void
notifyIcon_serveurON_DoubleClick(
object
sender, System.EventArgs e)

{
if (
this
.invisible)

{
this.RevoirForm();

}
else

{

this.cacherForm();

}
}




private
void
menuItem_reduire_Click(
object
sender, System.EventArgs e)

{
this.cacherForm();

}

A+,
Seb.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
18 nov. 2005 à 16:55
Salut,

Quand tu cliques sur la croix le formulaire n'est pas invisible mais fermé.
Si tu veux eviter ça dans Form2 tu peux faire ça :
protected override void OnClosing(CancelEventArgs e)
{
e.Cancel = true; // annule la fermeture
this.Visible = false; // masque le formulaire
base.OnClosing (e);
}

/*
coq
MVP Visual C#
*/
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
18 nov. 2005 à 16:57
BonTantPisJAvaisQuARefresh ™

/*
coq
MVP Visual C#
*/
0
cs_Smalo Messages postés 36 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 11 décembre 2006
18 nov. 2005 à 17:14
oui voilà c'est aussi ce que je fais pour cacher la form au clic de la croix :


private
void
Form1_Closing(
object
sender, System.ComponentModel.CancelEventArgs e)

{
this.Visible =
false
;

e.Cancel= true;
}

(par contre je vois pas la necessité du override...)

++,
Seb.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
18 nov. 2005 à 17:21
C'est pourtant l'override qui est conseillé plutôt que l'abonnement du Form à son propre event. :-)
C'est la méthode OnClosing qui est chargée de lever l'event Closing.

/*
coq
MVP Visual C#
*/
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
18 nov. 2005 à 17:22
Ben en faite dans Form1, le gars se logue, donc y'a Form2 qui apparait
avec un notifyicon. Quand je clique sur la croix dans Form2 je rend
Form2 invisible mais manque de bol le faite que Form2 soit invisible
delenche :



this.Visible = true ; //quand form2 est quitter ou devient invisible



donc Form1 (la page pour se loguer) redevient visible ce qui
fait c'est pas bon... Ca marcherait si j'avais pas une Form pour se
loguer avant en faite.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
18 nov. 2005 à 17:50
Ah oui, j'avais oublier que le comportement de la fermeture d'une boite modale est un peu différente.
D'ailleurs pourquoi passes tu par ShowDialog et non pas par Show (en déclarant ton instance de Form2 ailleurs que dans la corps de la méthode naturellement) ?

/*
coq
MVP Visual C#
*/
0
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
18 nov. 2005 à 18:12
ben je sais pas ca me parraissait plus logique, je vais esasyer avec show
0
cs_Smalo Messages postés 36 Date d'inscription lundi 3 janvier 2005 Statut Membre Dernière intervention 11 décembre 2006
20 nov. 2005 à 00:28
Coq : C'est la méthode OnClosing qui est chargée de lever l'event Closing.

Merci du conseil
a+,
Seb.
0
Rejoignez-nous