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 :

Enregistrer des options dans une ComboBox


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut Enregistrer des options dans une ComboBox
    Bonjour,

    Dans une interface graphique que j'ai crée l'utilisateur doit choisir des options, moi je veux enregistrer ces options dans une combobox.
    Pour cela j'ai pensé à créer un fichier *.txt et y enregistrer le texte de la combobox, puis à chaque fois que j'exécute le programme j'ouvre le fichier et j'enregistre son contenu dans la combobox.

    Je ne sais si c'est une bonne idée!! Le problème c'est que je n'arrive pas ni à enregistrer toutes les options dans la combobox ni dans la combobox.

    Voici la partie du code que j'ai écrite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    tring file = folderBrowserDialog.SelectedPath;
                StreamWriter sw = new StreamWriter("C:\\texte.txt");
                if (result == DialogResult.OK)
                {
                        Dossier_origine.Text = file;
                        sw.WriteLine(file);
                }
     
                if (sw != null)
                  Dossier_origine.Items.Add(file);
    Merci d'avance pour votre aide.

  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
    Bonjour,

    Ton code est un peu confus, tu nomme file une variable représentant un chemin vers un dossier, puis tu l'assigne à la propriété Text d'un composant (la ComboBox j'imagine) en ayant entre temps testé la valeur de result, un DialogResult sorti de nulle part.

    Si tu veux enregistrer tout les chemins de dossier présents dans ta ComboBox, tu peux faire une méthode qui sera appelée par exemple à la fermeture de ton programme et qui fera un foreach sur les Items de ta combobox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    StreamWriter sw = new StreamWriter("C:\\texte.txt");
     
    foreach(String item in Dossier_origine.Items)
    {
        sw.WriteLine(item);
    }
     
    sw.Close();
    sw.Dispose();

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    Merci pour ta réponse, ton code marche très bien.

    J'ai une autre question, je veux que les options que j'ai enregistré dans mon fichier .txt restent enregistrer dans le fichier à chaque fois que j'exécute le code.

  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
    Dans ce cas là, tu peux aussi faire en sorte lors du démarrage de ton application de lire le fichier afin de mettre les chemins de dossier dans les Items de la ComboBox. Bien sûr, il faut que tu en ai l'utilité.

    Sinon, il te suffit d'indiquer que tu veux ajouter des lignes au fichier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamWriter sw = new StreamWriter("C:\\texte.txt", true);

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    Merci pour ton aide, maintenant j'arrive à mettre les chemins de dossier dans les Items de la ComboBox, mais je veux savoir si c'est possible d'ajouter les options dans les items de la ComboBox (et ses options restent enregistrer même après que j'exécute mon code) sans passer par le fichier ?
    Merci encore une fois.

  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
    Qu'appelle tu les options ?

    Si j'ai bien compris, tu voudrais sauvegarder ces options dans la ComboBox et pouvoir les réutiliser à la prochaine exécution de l'application sans passer par un fichier ?

    Dans ce cas, tu pourrais te tourner vers les fichier de Settings :

    MSDN (fr)

    DotNetPerls (en)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    C'est exactement ce que je veux faire, mais je n'ai jamais travailler avec des fichiers de Settings et je ne vois pas comment je pourrai enregistrer les options dans ces fichiers !!
    Je vais me documenter et comprendre comment ça fonctionne.

    Merci pour ton aide

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    200% de cet avis !

    Si tu veux rendre persistant certaines propriété d'un control d'une Winform (tel que la liste des items d'une combobox), alors le fichier Setting est ton ami !

    Le Designer est tres bien fait pour ca, clique sur ta combo, puis propriétés et penche toi sur la section "(Application Settings)" tu verra qu'en quelques clic de souris, tu obtiens le résultat que tu recherche

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    Ça fait pas mal de temps que je cherche et j'ai pas trouvé ce que je cherche
    Je n'ai jamais travailler avec des fichiers Settings et je ne sais pas par quoi commencer, si tu peux me guider ou si tu connais un tutoriel qui pourrai m'aider à comprendre !!

    Merci d'avance.

  10. #10
    Expert éminent
    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 : 46
    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
    Points : 7 660
    Points
    7 660
    Par défaut
    Avec une recherche sur google avec comme mots clés C# et Settings (cf. fichier Settings dont parlait giova_fr), le premier lien qui tombe est une page traitant du sujet sur la MSDN (en anglais, mais on peut passer en français sur le site).

    Il faudra apprendre à chercher.

    Utilisation des paramètres en C#

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    non je n'en ai pas en tete, de mémoire j'avais tatilloné à mon habitude, puis avec msdn c'est venu tout seul...

    Je t'ai fais un mini projet de demo, voila comment j'ai fais (à lire avec ma solution ouverte à coté).

    1) j'ai créé mes controles
    2) j'ai fais clic droit sur la textbox, puis propriété, puis tout en haut 'application settings) puis (Propertie Binding), et enfin le ptit bouton [...]
    3) j'ai selectionné Text car c'est ce que je veux rendre persistant, puis j'ai fais nouveau.

    Ensuite j'ai voulu te montrer la meme chose pour la combo, mais le probleme, c'est que Items n'etait pas dans la liste des parametres qu'on peut rendre persistant. C'est surement du à des probleme de serialisation j'imagine... Qu'importe j'ai décidé de le faire à la main. Du coup :

    4) je suis allé dans l'explorateur de solution, puis dans properties, et là, oh miracle il y a un fichier settings ! ce sont mes manip précédentes qui l'on créé. J'ai ouvert le fichier.
    5) je veux sauver les items de ma combo, je sais que ce sont des strings, tant mieux ! car dans la liste des types possible, il y a String Collection , j'ai donc ajouté une nouvelle ligne "Utilisateurs" de type collection String, je ne lui ai pas mis de param par defaut.

    A partir de la les propriétés sont créés, il reste à lier les items de la combo à ma propriété "Utilisateurs", et à implémenté quand on sauve les settings.

    J'ai donc fais 2 boutons, "Sauver" et "Recharger", Sauver sauve les properties, tandis que Recharger, permet de reseter mes controls avec les propriétés sauvées precedemment. Lis les callbacks de ces 2 boutons, c'est je pense suffisamment explicite.

    Tu notera que dans le constructeur de la form, j'appelle la callback du bouton Recharger. Si tu mets ceci en commentaire tu verra qu'au chargement de la form, le text de la textbox est rechargé automatiquement ! seules les etapes 1 à 3 ont été necessaires pour tout gérer de A a Z concernant le text de ma textbox. Mortel non?

    En revanche comme je suis obligé de faire à la main la liaison entre ma liste d'items, et ma propriété "Utilisateurs", j'ai du coup été obligé d'appeller lors de la construction de ma form, ma callback du bouton recharger pour remplir ma combo depuis ma propriété Utilisateurs.
    Fichiers attachés Fichiers attachés

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour ces explications, j'ai testé ton code et ça marche très très bien

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

Discussions similaires

  1. Ouvrir, Enregistrer des textbox dans une base de donnee ( DEBUTANT!)
    Par macfly77 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 01/12/2006, 13h21
  2. Réponses: 4
    Dernier message: 26/09/2006, 11h42
  3. enregistrer des variables dans une table via requete sql
    Par Echizen1 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 15/09/2006, 15h15
  4. Séléction des options dans une seconde liste
    Par vautour29 dans le forum Access
    Réponses: 1
    Dernier message: 04/07/2006, 16h18

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