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 :

Interaction entre 2 UserControl par event


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Par défaut Interaction entre 2 UserControl par event
    Bonjour,
    Ma question est à priori simple mais je ne trouve pas encore la solution qui règle mon problème..
    j'ai inclut dans un UserControl 2 usercontrols cote à cote (séparé par un splitcontener), je souhaiterais interagir entre ces 2 UC:
    en gros quand je fais une modification dans UC1 (suppression,création.. d'un élément d'une liste), je veux que mes combox qui se trouve dans UC2 se mette à jour.
    Pour cela, j'ai commencer à faire la chose suivante:
    Dans le UC1 j'ai créer un event comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     public delegate void EventHandler(object sender, SampleEventArgs e);
            public event EventHandler Modified;
     
            public class SampleEventArgs
            {
                public SampleEventArgs(string s) { Text = s; }
                public String Text { get; private set; } // readonly
            }
    Dans le code de ce même UC1: je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (Modified!= null)
                {
                Modified(this, new SampleEventArgs("NewLoad"));
                }
    dans l'évenement de supression ou creation d'un élement.
    et puis dans le constructeur de User control parent (de UC1 et UC2) je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    UC1.Modified+= new UC1.EventHandler(fonctionAExecuter);
     
    puis:
            private void fonctionAExecuter(object sender, UC1.SampleEventArgs e)
            {
                this.UC2.Reload();
            }
    et dans le UC2 j'ai ma fonction à executer pour mettre à jours les élements:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void Reload()
            {
    .....Code de mise à jour
    }

    Mais l'événement envoyé est toujours null.j'ai raté quelque chose certainement..

    Merci d'avance de votre aide...

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    T'aurais pas des fois un conflit avec System.EventHandler ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Par défaut
    hmmm non, enfin je sais pas exactement ce que ca veut dire ça, mais la seule chose que j'ai constaté est que "Loaded" est toujours null même quand il y a bien une modification sur les élément de la liste de UC1 (suppression/nouvelle creation)...

  4. #4
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    C'est quoi "Loaded"?
    Tu déclares
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    delegate void EventHandler(object sender, SampleEventArgs e);
    EventHandler existe déjà dans System
    Essaie de le renommer ModifEventHandler p.ex.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 153
    Par défaut
    même après l'avoir renomé, toujours pas d'interaction, je pense que c'est plutôt il est pas branché correctement cet événement, car si je mets un point d'arrêt, là on s'abonne, il passe pas dedans..

  6. #6
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Montre un peu le code où tu t'abonnes...

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

Discussions similaires

  1. WPF - Interaction entre 2 userControl
    Par peruvio dans le forum C#
    Réponses: 1
    Dernier message: 24/01/2014, 11h05
  2. interaction entre plusieur script python par le biai d'internet
    Par yggdrazil dans le forum Réseau/Web
    Réponses: 5
    Dernier message: 01/11/2006, 14h36
  3. [VB .Net][Forms] Interaction entre deux forms
    Par plasticgoat dans le forum Windows Forms
    Réponses: 7
    Dernier message: 24/08/2005, 13h14
  4. [Collaboration/Interaction] Peut-on schématiser une interaction entre un bouton de commande et un autre objet ?
    Par manel007 dans le forum Autres Diagrammes
    Réponses: 5
    Dernier message: 21/09/2004, 01h01
  5. Réponses: 5
    Dernier message: 25/03/2003, 19h43

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