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#] [ConfigurationManager] Rafraichir


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Par défaut [C#] [ConfigurationManager] Rafraichir
    Bonjour à toutes et à tous,

    J'utilise la référence ConfigurationManager pour la configuration de mon application, seulement j'aimerais que le fichier de configuration soit rechargé à l'ouverture de la form config.cs afin que celle-ci soit à jour.

    Pour le moment voici le problème :
    Si on ouvre la form config.cs, que l'on coche une case et qu'on ferme cette form, une fois réouverte, on retrouve la configuration disponible à l'ouverture du programme... Pourtant, si on ferme le programme après avoir modifié la configuration, le changement est bien effectif et visible dans la form config.cs.

    Comment faire pour que la configuration soit remise à jour à l'ouverture de la form config.cs ?

    Merci d'avance.

    Bonne journée.

  2. #2
    Membre Expert
    Avatar de Mehdi Feki
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 113
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 113
    Par défaut
    Ca depend comment tu as rempli ta form et comment tu as appliquer les modifs !!

    Un petit morceau de code ?

  3. #3
    Membre Expert Avatar de bossun
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    1 359
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 359
    Par défaut
    quand tu sauve tes modifs... fais un reload de ton fichier de config...

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Par défaut
    Bonjour,

    Tout d'abord merci pour vos réponses. Désolé d'y répondre si tardivement mais le temps passe vite

    Voici le code en question :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     public config()
            {
                InitializeComponent();
            }
     
    // On récupère la configuration
            String conf_dlprogbeforeinstall = ConfigurationManager.AppSettings["dlprogbeforeinstall"].ToString();
            String conf_dlprogafteradd = ConfigurationManager.AppSettings["dlprogafteradd"].ToString();
            String conf_delinstallafterinstall = ConfigurationManager.AppSettings["delinstallafterinstall"].ToString();
     
            private void config_Load(object sender, EventArgs e)
            {
                AppSettingsReader configurationAppSettings = new AppSettingsReader();
                MessageBox.Show((string)(configurationAppSettings.GetValue("dlprogafteradd", typeof(string))));
     
                if (conf_dlprogbeforeinstall == "1")
                {
                    dlprogbeforeinstall.Checked = true;
                }
                if (conf_dlprogafteradd == "1")
                {
                    dlprogafteradd.Checked = true;
                }
                if (conf_delinstallafterinstall == "1")
                {
                    delinstallafterinstall.Checked = true;
                }
            }
     
            private void exit_Click(object sender, EventArgs e)
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
     
                if (dlprogbeforeinstall.Checked == true)
                {
                    config.AppSettings.Settings["dlprogbeforeinstall"].Value = "1";
                }
                else
                {
                    config.AppSettings.Settings["dlprogbeforeinstall"].Value = "0";
                }
                if (dlprogafteradd.Checked == true)
                {
                    config.AppSettings.Settings["dlprogafteradd"].Value = "1";
                }
                else
                {
                    config.AppSettings.Settings["dlprogafteradd"].Value = "0";
                }
                if (delinstallafterinstall.Checked == true)
                {
                    config.AppSettings.Settings["delinstallafterinstall"].Value = "1";
                }
                else
                {
                    config.AppSettings.Settings["delinstallafterinstall"].Value = "0";
                }
                config.Save(ConfigurationSaveMode.Modified);
     
                Close();
    Il me semble bien que la configuration est chargée de nouveau dés l'ouverture de la form... non ?

    .

  5. #5
    Rédacteur
    Avatar de The_badger_man
    Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 745
    Par défaut
    J'ai trois remarques :

    1) Faut pas rester sur les forums de developpez.com jusqu'à 3h du mat, faut aller dormir

    2) Je pense que ton problème ne se situe pas au niveau du chargement mais plutot de la sauvegarde des parametres.

    Il ne suffit pas de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    config.AppSettings.Settings["dlprogbeforeinstall"].Value = "1";
    Il faut faire plutot ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    config.AppSettings.Settings["dlprogbeforeinstall"].Value = "1";
    ConfigurationManager.AppSettings["dlprogbeforeinstall"] = "1";
    La premiere ligne doit sauvegarder les changements dans le fichier de config, alors que la deuxieme les modifie en mémoire (je suis pas sur du tout mais il doit y avoir un truc dans le genre d'apres mes observations).

    3) Pour quoi s'embeter avec des 0 et des 1 et plein de if else ?

    Au lieu de faire pour la sauvegarde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (dlprogbeforeinstall.Checked == true)
    {
          config.AppSettings.Settings["dlprogbeforeinstall"].Value = "1";
    }
    else
    {
          config.AppSettings.Settings["dlprogbeforeinstall"].Value = "0";
    }
    Et pour le chargement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (conf_dlprogbeforeinstall == "1")
    {
         dlprogbeforeinstall.Checked = true;
    }
    Pourquoi ne pas simplement faire pour la sauvegarde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    config.AppSettings.Settings["dlprogbeforeinstall"].Value = 
    dlprogbeforeinstall.Checked.ToString();
    Et pour le chargement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    dlprogbeforeinstall.Checked = 
    Convert.ToBoolean(ConfigurationManager.AppSettings["dlprogbeforeinstall"].ToString());
    ça fait quand même moins de code...
    Les règles du forum
    Le trio magique : FAQ + Cours + fonction rechercher
    Mes articles
    Pas de questions par messages privés svp

    Software is never finished, only abandoned.

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 111
    Par défaut
    Bonsoir The_badger_man,

    Merci pour ton aide. Le code fonctionne parfaitement.

    Bonne soirée.

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

Discussions similaires

  1. [Conception][Langue] Rafraichir une application
    Par smash31 dans le forum Général Java
    Réponses: 5
    Dernier message: 06/07/2004, 14h04
  2. Rafraichir TADOQuery
    Par koolkris dans le forum Bases de données
    Réponses: 6
    Dernier message: 13/05/2004, 16h14
  3. [API] Rafraichir une fenetre ?
    Par laurent_h dans le forum Windows
    Réponses: 2
    Dernier message: 17/04/2004, 23h26
  4. rafraichir un dbGrid
    Par undertacleur dans le forum Bases de données
    Réponses: 6
    Dernier message: 24/02/2004, 08h46
  5. Comment rafraichir le swf ?
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 13h08

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