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

Windows Forms Discussion :

Event et Delegate


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Par défaut Event et Delegate
    Je suis en train de programmer une application ou il y a plusieurs projets qui doivent communiquer entre eux. J ai fait une classe Communication qui me permet de faire circuler des Data entre differentes TextBox au moyen d'Events.
    Voici une partie du code:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    namespace Com
    {
       public delegate void CommEventHandler (string data);
       //...
       public class Communication
       {
          //...
          public event CommEventHandler EventMessageSent;
          //...
          private void OnEventMessageSent()
          {
             if(EventMessageSent != null)
             {
                EventMessageSent(this.Data);
             }
          }
          public void SendMessage (string command)
          {
             this.Data = command;
             this.OnEventMessageSent();
          }
          //...         
       }
    }
     
    namespace ConsoleTest
    {
       public classe Console
       {
          //...
          public Console()
          {
             InitializeComponent();
             Comm.EventMessageSent += new CommEventHandler(this.DisplayCommand);
          }
          //...
          public void DisplayCommand(string Data)
          {
              this.AppendData(Data);
          }
       }
    //...
    Le problème que j'ai trouvé quand j'ai débuggué le programme est que lorsque le programme passe dans la fonction il devrait déclencher l'évennement , mais lorsque il rentre dans la méthode OnEventMessageSent il n'a pas donc l'evennement n'est pas déclenché. pourtant je suis certain que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Comm.EventMessageSent += new CommEventHandler(this.DisplayCommand);
    est exécuté avant.
    Est ce que vous voyez d'ou peut venir le problème !
    Merci de votre aide.

  2. #2
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Par défaut
    J ai continué à dbugguer et j ai découvert que l'instance que je crée de la classe Comunication n est pas la même pour les deux projet. Pourtant j'ai fait une instance Singleton:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #region Communication Singleton
    		/// <summary>
    		/// Unique instance of Communication
    		/// </summary>
    		private static Communication comm_instance = null;
     
    		/// <summary>
    		/// Synchronization's object
    		/// </summary>
    		private static object syncRoot = new Object();
     
    		/// <summary>
    		/// Get the unique instance of Communication
    		/// </summary>
    		public static Communication Comm_Instance
    		{
    			get
    			{
    				// Quick test
    				if (comm_instance == null)
    				{
    					lock (syncRoot)
    					{
    						// Thread safe test
    						if (comm_instance == null)
    						{
    							// First call, create the instance
    							comm_instance = new Communication();
    						}
    					}
    				}
    				return (comm_instance);
    			}
    		}
    #endregion // Communication Singleton
    Comment est ce possible d'avoir deux instance différentes ????

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 33
    Par défaut
    Pas d'idées ??

Discussions similaires

  1. DLL TCP Asynchrone et delegate/event
    Par marso dans le forum C#
    Réponses: 1
    Dernier message: 03/09/2008, 19h05
  2. Polymorphism - Delegates & Events
    Par ragnarokr dans le forum Débuter
    Réponses: 6
    Dernier message: 16/06/2008, 16h38
  3. events & delegates
    Par simaxe25 dans le forum C++/CLI
    Réponses: 5
    Dernier message: 18/10/2007, 01h43
  4. events & delegates
    Par simaxe25 dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 17/10/2007, 18h01
  5. [C#]Thread, event/delegate et Form
    Par doccpu dans le forum Windows Forms
    Réponses: 28
    Dernier message: 01/08/2005, 18h35

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