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 :

[C#] établir une communication entre UsersControl ??


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut [C#] établir une communication entre UsersControl ??
    Bonjour,

    Je me demande comment réaliser une communication entre control :

    Imaginons que j'ai quelques contrôles de traitements qui envoient un message de type string lorsqu'ils effectuent un traitement.

    et un contrôle dédié à l'affichage de ces messages.

    Le controle d'affichage doit réceptionner les messages (qui peuvent être envoyés à n'importe quel moment) des contrôles de traitement et les afficher dans son espace visuel.

    Comment établir une telle communication en essayant de respecter une indépendance entre ces contrôles (ces contrôles étant au sein d'une même WindowsForm) :

    Comment et ou les contrôles de traitement doivent envoyer leur message :

    Comment le controle d'affichage doit receptionner ces messages et comment déclencher l'affichage après réception d'un message :

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Structurellement, vos Classes de traitement devraient toutes recevoir en paramètre lors de leur instanciation, la référence du destinataire des messages, celui ci exposant une méthode publique de reception de message et declenchant l'evenement correspondant.
    Soit
    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
    public delegate void AddedMessageEventHandler(string msg);
    public class Recepteur
    {
      //...
      public AddedMessageEventHandler RecievedNewMessage(),
      //...
      public void AddMessage(string msg)
      {
         // eventuellement empilage du message dans une Queue
         this.RecievedNewMessage(msg);
      }
      //...
    }
     
     
    public class MyBusinessClass
    {
       public MyBusinessClass(Recepteur destinataire)
        {
           this.recepteur = destinaire;
           //...
        }
        //...
        private void MonTraitement()
        {
           // le traitement puis
           this.recepteur.AddMessage("le resultat de mon traitement");
        }
       private Recepteur recepteur;
    }
    Il ne reste plus qu'à capturer l'evenement RecievedNewMessage dans l'appli de votre objet Recepteur
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    merci m'sieur

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/05/2011, 15h37
  2. Établir une connexion entre Forms et Oracle
    Par kvirus dans le forum Connexions aux bases de données
    Réponses: 3
    Dernier message: 01/04/2011, 23h30
  3. Réponses: 3
    Dernier message: 23/03/2011, 17h11
  4. Comment établir une relation entre deux tables
    Par Monta^^ dans le forum Hibernate
    Réponses: 15
    Dernier message: 30/04/2009, 19h54

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