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# remplir une comboBox dynamiquement en utilisant un fichier de configuration


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 62
    Points
    62
    Par défaut C# remplir une comboBox dynamiquement en utilisant un fichier de configuration
    Bonjour à tous,

    Je suis en train de développer mon premier programme en C# et je suis dans une impasse. Je voudrais lier les Items de ma comboBox à des éléments sauvegardés dans le fichier de configuration de mon application.

    Existe-t-il une manière de faire ça proprement ? Parce que pour le moment, je vais modifier le code de mon fichier *.Designer.cs et cela implique la destruction de ma Form dans la fenêtre de l'éditeur. C'est pas terrible si je veux continuer à ajouter des trucs...

    Des idées ? Merci d'avance

  2. #2
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Alors, je te le confirme, tu ne le fais pas du tout de la bonne façon

    Mais on va arranger ça. Tes éléments dans le fichier de configuration sont variables, c'est-ce pas ?
    Il te faut les mettre à jour à chaque lancement de l'application ?

    Dans ce cas là, dans le constructeur de ton formulaire il te suffit de lire ton fichier de configuration via la classe ConfigurationManager disponible dans la dll System.Configuration et d'ajouter tes éléments dans la ComboBox via la méthode Add de ses items.

    Et il ne faut jamais toucher au code des fichiers .designer.cs à moins de savoir exactement ce que l'on fait
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 62
    Points
    62
    Par défaut
    Merci de ta réponse.

    C'est effectivement ce que j'ai fait, à savoir surcharger la fonction OnLoad de ma form et le tour est joué!!!

    Par contre, je ne comprends pas pourquoi les informations ne sont pas lues dans l'ordre... Je m'explique. Dans mon fichier Config, j'ai par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    key1 ...
    key2 ...
    key3 ...
    et dans la comboBox que j'initialise avec ces clés, je retrouve

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    key2 ...
    key1 ...
    key3 ...
    Vraiment étrange !!!

    En tout cas, merci pour tes réponses !

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Si tu utilise une boucle for pour lire les clés, ça devrait marcher.
    En tout cas elles seront lues dans l'ordre de création.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i = 0; i < ConfigurationManager.AppSettings.Count; i++)
    {
        Console.WriteLine(ConfigurationManager.AppSettings[i]);
    }
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par laedit Voir le message
    Si tu utilise une boucle for pour lire les clés, ça devrait marcher.
    En tout cas elles seront lues dans l'ordre de création.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i = 0; i < ConfigurationManager.AppSettings.Count; i++)
    {
        Console.WriteLine(ConfigurationManager.AppSettings[i]);
    }
    Ben justement non, elles ne sont pas lues dans l'ordre de création (dans le fichier de configuration). Voici mon code mais qui fait sensiblement la même chose :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Chargement des auteurs
    Hashtable section = (Hashtable)ConfigurationManager.GetSection("AppConfig/ListofUsers");
    foreach (DictionaryEntry d in section)
    {
           comboBox_Author.Items.Add(d.Key.ToString());
     }
    Vous avez dit bizarre ???

  6. #6
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    tu as tenté avec un for ?
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 47
    Points : 60
    Points
    60
    Par défaut
    Quand on stocke des données dans une Hashtable, il me semble qu'on en perd le tri, ça vient certainement de là (pour plus d'info sur les hashtables : http://en.wikipedia.org/wiki/Hash_table ).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 95
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par laedit Voir le message
    tu as tenté avec un for ?
    Non pas encore, mais cela dit, en mode débug, lorsque je m'arrête sur la variable section, elles sont déjà dans le désordre !!!

  9. #9
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Mets la propriété Sorted de ta ComboBox à true, ça devrait marcher ça :p
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

Discussions similaires

  1. Remplir une liste dynamiquement à partir d'un fichier PHP
    Par titoff85 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/08/2007, 20h57
  2. [VBA-E] Comment remplir une ComboBox ?
    Par yaya54 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2006, 09h03
  3. [C#] Remplir une combobox avec le champs d'une table Access
    Par Damsou dans le forum Windows Forms
    Réponses: 4
    Dernier message: 23/06/2005, 15h31
  4. [VB.NET] Remplir une ComboBox avec une requete sql
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 22/03/2005, 15h29
  5. Réponses: 2
    Dernier message: 26/07/2004, 13h34

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