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#]Parcourir items d'un combobox pour en remplir un autre avec


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut [C#][Résolu]Parcourir items d'un combobox pour en remplir un autre avec

    salut,

    je voudrais savoir quelles sont les techniques pour récupérer les items d'un combobox afin de les mettre dans un autre combobox (d'une autre classe).
    en gros c'est de l'héritage je pense
    pour l'instant j'ai déclaré mon combo que je veux remplir en public, et dans la form où se trouve le combo rempli j'y accède, mais impossible de trouver la syntaxe pour parcourit les items du premiers combo pour remplir le second avec.
    si vous aviez des pistes , ça illuminerait ce triste vendredi.

    Merci ;-)

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    Deux solutions .....

    Soit, tu fais juste une copie et dans ce cas tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ComboDest.Items.AddRange(ComboSource.Items)
    Soit, tu fais un vrai parcours (cela peut te permettre de filtre certaines valeurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim element As Object
    For Each element In ComboSource.Items
        ComboDest.Items.Add(element)
    Next
    Attention mon code est du VB.NET mais le code en C# doit être quasiment identique (sauf pour la déclaration de la variable element).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut c'est pas encore ça....
    merci pour les exemples, mais en C# ça n'a pas l'air de marcher ou alors
    c'est que je n'ai pas la bonne syntaxe (j'en ai beaucoup essayées pourtant !), mais je ne suis pas encore très expérimentée....

    mais c'est gentil d'avoir répondu ...

    quelqu'un l'a déjà implémenté en C# ?

    merci

    tikam

  4. #4
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maComboBoxDestination.Items.AddRange(maComboBoxSource.Items)
    Et non, ça n'a strictement rien à voir avec l'héritage. Je ne saurais trop te suggèrer de te re-renseigner sur cette notion assez fondamentale.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 49
    Par défaut Même syntaxe mais erreur à la compil
    oui en effet, cela n'a rien à voir avec l'héritage
    je me suis renseignée dessus depuis ....(excusez je suis complètement autodidacte)

    ta syntaxe est exactement celle que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //création de l'objet form qui contient le combo de destination
    Multicriteres dip = new Multicriteres("Diplome");
    dip.cmb_valeur1.Items.AddRange(cmb_diplome.Items);
    dip.ShowDialog();
    mais elle produit une erreur récurrente à la compilation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    erreur 1 La méthode surchargée correspondant le mieux à 'System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[])' possède des arguments non valides
    Erreur	2 Argument '1'*: impossible de convertir de 'System.Windows.Forms.ComboBox.ObjectCollection' en 'object[]'
    qu'est ce que j'ai fait de travers ?

    merci de me donner ton avis Mose si tu as qq minutes ;-)

  6. #6
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Ah non t'as raison, c'est super mal foutu. Encore une incohérence idiote du framework... (soupir blasé).

    Qq solutions rapides :

    1 - passer par un tableau d'object
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    object []objz = new object[cbSource.Items.Count];
    cbSource.Items.CopyTo(objz, 0);
    cbDest.Items.AddRange(objz);
    2 - copier item par item
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    foreach (object item in cbSource.Items)
         cbDest.Items.Add(item);
    3 - copier item par item en évitant le scintillement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // on bloque les évènements de la combobox
    cbDest.SuspendLayout();
     foreach (object item in cbSource.Items)
         cbDest.Items.Add(item);
    // on redémarre les évènements
    cbDest.ResumeLayout(false);

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

Discussions similaires

  1. [Débutant] Lire les Items d’un comboBox pour en obtenir un String
    Par Claude_Azoulai dans le forum C#
    Réponses: 3
    Dernier message: 30/03/2013, 18h43
  2. [A-03] Se servir d'une table pour en remplir une autre
    Par keeepcoool dans le forum Modélisation
    Réponses: 9
    Dernier message: 26/12/2008, 12h44
  3. [VBA-E] Parcourir les Items d'un ComboBox à la recherche d'une string
    Par Jipété dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/12/2006, 19h23
  4. Incrémenter l'item d'un ComboBox
    Par Navi dans le forum Composants VCL
    Réponses: 24
    Dernier message: 26/12/2005, 22h16
  5. [VB.Net][DataGrid] Comment retirer des items d'un ComboBox ?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 9
    Dernier message: 20/12/2005, 11h46

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