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 :

[c#][VS 2005] userControl avec des données partagées


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Points : 35
    Points
    35
    Par défaut [c#][VS 2005] userControl avec des données partagées
    Bonjour,
    j'aurais voulu savoir si il y avait possibilité de faire un userControl dans plusieurs fenêtre (jusque là, c'est logique ) dont le contenu peut avoir un changement de valeurs mais tout en restant identique entre les fenêtres.

    ex : un userControl contenant un text "Toto" dans trois fenêtre et que lorsque celui ci devient "Titi" cela le devient dans les 3 fenêtres.

    Suis-je obligé de passer par une gestion d'événement pour modifier chaque userControl un par un ou y a t il un moyen qu'ils aient la même référence ?

    j'espère être assez clair.

    Merci.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par gouroupasdebol Voir le message
    Suis-je obligé de passer par une gestion d'événement pour modifier chaque userControl un par un ou y a t il un moyen qu'ils aient la même référence ?
    DP Observer; tout autre solution serait un peu sale.

    Quant à avoir la même référence, désolé, mais comment 4 instances d'objet pourrait

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par gouroupasdebol Voir le message
    Suis-je obligé de passer par une gestion d'événement pour modifier chaque userControl un par un ou y a t il un moyen qu'ils aient la même référence ?
    Implémenter un DP Observer; tout autre solution serait franchement sale. (exempke, dans le style "degueu" : cabler les évenements de manière croisée entre les contrôles).

    Quant à avoir la même référence, désolé, mais comment 4 instances d'objet pourraient avoir la même référence ?

  4. #4
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Quant à avoir la même référence, désolé, mais comment 4 instances d'objet pourraient avoir la même référence ?
    On ne sait jamais tout sur tout, donc je demande au cas où.

    Sinon je suis en train de regarder les observers que je ne connaissais pas, donc je mettrais un exemple aprés (si ça fonctionne ).

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Dans la form principale, il y a deux userControl identiques (controlUtilisateur1 et controlUtilisateur2), un bouton (button1), une textBox (textBox1).
    Le userControl n'est constitué que d'un Label (label1).

    dans la from principale :

    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
     
     ClassObservation classObs;
            public FormPrincipale()
            {
                InitializeComponent();
            }
     
            private void Form1_Load(object sender, EventArgs e)
            {
                classObs = new ClassObservation();
                classObs.ValeurChange += new ClassObservation.DemandeChangementText(controlUtilisateur1.ValeurChange);
                classObs.ValeurChange += new ClassObservation.DemandeChangementText(controlUtilisateur2.ValeurChange);
            }
     
            private void button1_Click(object sender, EventArgs e)
            {
                classObs.Valeur = textBox1.Text;
            }
    dans le userControl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      public void ValeurChange(String valeur)
            {
                label1.Text = valeur;
            }
     
     
            public ControlUtilisateur()
            {
                InitializeComponent();
            }

    et enfin dans la classe d'observation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
      public delegate void DemandeChangementText(String nouvelleValeur);
            public event DemandeChangementText ValeurChange;
            String _valeur;
     
            public String Valeur
            {
                set
                {
                    _valeur = value;
                    ValeurChange(_valeur);
                }
            }
    je sais les noms ne sont pas en anglais.
    Si il y a une erreure n'hésitez pas à me le dire.

    et merci à Bluedeep.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    Pour utiliser ce même système dans des forms différentes il faut envoyer l'événement à chaque form qui transmet la modification aux userControls.

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par gouroupasdebol Voir le message
    Pour utiliser ce même système dans des forms différentes il faut envoyer l'événement à chaque form qui transmet la modification aux userControls.
    Pas forcément : il suffit que les usercontrol s'abonnent aux même à l'observer lors de leur initialisation.

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Points : 35
    Points
    35
    Par défaut


    Euh .... je vois pas trop là.
    (et j'ai plus de café donc j'ai un peu de mal )

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/07/2006, 10h56
  2. INNER JOIN avec des données de sélection
    Par EK1_ dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/05/2006, 18h40
  3. [VBA-A]Remplir une textbox avec des données de tables.
    Par cuicui08 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/03/2006, 10h28
  4. [datagrid]lier avec des données
    Par Alex35 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 11/12/2005, 10h10
  5. Créer du xml avec des données Oracle
    Par Baumont dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 15h35

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