IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Problème de communication avec une notifyIcon


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème de communication avec une notifyIcon
    Bonjour à tous,

    Je me permets de solliciter votre aide car j'ai un petit soucis.

    Voilà j'ai un programme qui exécute une certaine tâche, une fois fini selon le résultat j'affiche 2 notifyIcon avec une alternance de 5 secondes. Le code pour l'affichage se situe dans un BackGroundWorker.

    Mon problème est que j'aimerais pouvoir utiliser les fonctions comme doubleClick ou rightClick dessus mais quand je mets en place une de ces fonctions il ne se passe rien...

    Si vous pouviez m'aider à résoudre ce problème.

    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Voilà j'ai un programme qui exécute une certaine tâche, une fois fini selon le résultat j'affiche 2 notifyIcon avec une alternance de 5 secondes. Le code pour l'affichage se situe dans un BackGroundWorker.
    BackGroundWorker ne peut pas mettre à jour notifyIcon car le notifyIcon est geré par le Thread principale de l'interface graphique donc il faut passe un invoke une fonction dans le BackGroundWorker pour mette à jour NotifyIcon.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    notifyIcon.Invoke(mamethode,arrayParams);

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    En fait dans mon BackGroundWorker j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    testIcon = true;
     
    while(testIcon)
    {
    	this.notifyIcon2.Visible = false;
    	this.notifyIcon1.Visible = true;
    	System.Threading.Thread.Sleep(5000);
    	this.notifyIcon1.Visible = false;
    	this.notifyIcon2.Visible = true;
    	System.Threading.Thread.Sleep(5000);
    }
    this.notifyIcon1.Visible = false;
    this.notifyIcon2.Visible = false;
    Et l'icône change bien mais le problème c'est que je ne peux pas utiliser les méthodes comme doubleClick ou rightClick ... Et je ne vois pas vraiment comment utiliser le invoke que tu me proposes.

  4. #4
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    le While bloque le ressource de ton notifyicon car testIcon est tjr vraie ; essai d'utiliser un timer pour mette à jour ton notifyicon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    private void timerTick(object sender, System.Timers.ElapsedEventArgs e)
    {
      if (testIcon)
      {
            this.notifyIcon2.Visible = false;
    	this.notifyIcon1.Visible = true;
    	System.Threading.Thread.Sleep(5000);
    	this.notifyIcon1.Visible = false;
    	this.notifyIcon2.Visible = true;
    	System.Threading.Thread.Sleep(5000);
           return;
       }
     
    this.notifyIcon1.Visible = false;
    this.notifyIcon2.Visible = false;
    }

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai pensé au timer et finalement j'ai testé par hasard d'afficher l'icône au début du programme et ça marche.

    Je ne comprends pas bien pourquoi mais ça marche ^^.

    En tout cas merci pour tes réponses.

  6. #6
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    avec plaisir frero n'oublie pas

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Problème de résultat avec une requête
    Par raptorman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/01/2006, 17h16
  2. Problème de focus avec une TTreeView
    Par Rustine dans le forum Composants VCL
    Réponses: 2
    Dernier message: 24/10/2005, 18h12
  3. Problème de requête avec une condition IN
    Par sorcer1 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2005, 11h56
  4. problème de connexion avec une base firebird
    Par vbcasimir dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2005, 11h40
  5. Problèmes d'accent avec une connexion ODBC et ADO
    Par michael.jacques dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/03/2005, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo