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 :

Comment modifier correctement un objet?


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut Comment modifier correctement un objet?
    Bonjour à tous,

    Voilà, je voulais savoir si pour modifier un objet, il valait mieux l'extraire, le modifier puis le remettre dans la liste ou plutot le modifier directement dans la liste car la j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for (int i = 0; i < ListeEntree.Count; i++)
                        {
                            if (ListeEntree[i].getNomP().Equals(nomProduit))
                            {
                                ListeEntree[i].setNomP(newNom);
                                ListeEntree[i].setTauxE(newPrix);
                            }
                        }
    Le problème est qu'il modifi tous mes objets :s

    Merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Si tous les objets de la collection sont modifiés on pourrait supposer qu'ils ont tous le même nom de produit. La condition serait donc toujours vérifiée.

    Tu as essayé de déboguer pour voir ce qu'il se passe ?

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    en faite je crois que le problème vient plutot lors de l'affichage, en faite j'affiche les données de mon objet dans des labels lorsqu'un objet est sélectionné dans ma comboBox et l'affichage ne change pas. Je n'ai peut être pas sélectionné le bon événement. Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            private void cmbObjMod_SelectedIndexChanged(object sender, EventArgs e)
            {
                panelModEntre.Visible = true;
                for (int i = 0; i < ListeEntree.Count; i++)
                {
                    lblNom.Text = ListeEntree[i].getNomP().ToString();
                    lblPrix.Text = ListeEntree[i].getTauxE().ToString();
                }
     
            }
    En tout cas merci pour ton aide.

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    C'est un peu normal que tu ais un problème d'affichage. L'événement c'est le bon, par contre tu affiches chaque élément de la collection (boucle for) au lieu d'afficher les informations de l'élément sélectionné dans la ComboBox.

    Résultat tu auras beau modifier la sélection dans la ComboBox, tu verras toujours les informations du dernier élément de la collection.

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    Ah ok, pourrais tu m'expliquer comment faire pour afficher l'élément sélectionné sil te plait? je pense avec selectIndex non? Mais où le mettre :s

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Ca dépend comment tu alimentes la ComboBox. Montre un peu le code

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    Elle est alimenté dans le LOAD de ma page avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i = 0; i < ListeEntree.Count; i++)
               {
                   nomProduit = ListeEntree[i].getNomP();
                   cmbObjMod.Items.Add(nomProduit);
               }

  8. #8
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    A ce moment la propriété SelectedIndex fera l'affaire, pour récupérer l'élément sélectionné.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    d'accord mais je le mets où exatement? Désolé du dérangement :s

  10. #10
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Quelque chose comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void cmbObjMod_SelectedIndexChanged(object sender, EventArgs e)
    {
        panelModEntre.Visible = true;
        int i = cmbObjMod.SelectedIndex;
        lblNom.Text = ListeEntree[i].getNomP().ToString();
        lblPrix.Text = ListeEntree[i].getTauxE().ToString();
    }

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    je le laisse dans le for non?

  12. #12
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    La boucle for ne sert à rien puisqu'on connait l'index de l'élément. On peut y accéder directement.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    j'ai essayé comme tu me la conseillé, mais il bug sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     lblNom.Text = ListeEntree[i].getNomP().ToString();
    Il me le surligne en jaune :s

  14. #14
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Ca ne bug pas. Ce doit être une erreur de compilation, regarde le message d'erreur associé.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    il n'y en a pas justement

  16. #16
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Si tu ne peux pas compiler ou exécuter le code, tu dois bien avoir un message d'erreur quelque part. Si tu te places sur le code surligné, tu n'as pas un tooltip qui indique le pourquoi du problème ?

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    Même dans le tooltip il ne veux pas l'afiché,
    Mais la j contient une chaîne

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Par défaut
    j'ai resolu mon problème, j'ai fais a peu près comme tu me l'a conseillé, voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
                panelModEntre.Visible = true;
                int i = cmbObjMod.SelectedIndex;
     
                lblNom.Text = ListeEntree[i].getNomP().ToString();
                lblPrix.Text = ListeEntree[i].getTauxE().ToString();
    Merci pour ton aide

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

Discussions similaires

  1. Comment modifier les objets passés en paramètres ?
    Par jean-eude06 dans le forum Débuter
    Réponses: 3
    Dernier message: 14/05/2012, 22h31
  2. Réponses: 1
    Dernier message: 14/08/2009, 08h50
  3. Réponses: 3
    Dernier message: 13/08/2008, 21h10
  4. Comment modifier l'affichage des objets cachés de Windows ?
    Par maximdus dans le forum API, COM et SDKs
    Réponses: 23
    Dernier message: 23/07/2005, 11h45

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