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 :

Enregistrer les paramêtres en quittant un formulaire?


Sujet :

Windows Forms

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut Enregistrer les paramêtres en quittant un formulaire?
    Bien le bonjour,

    Sous VB 2008 Express, en quittant un formulaire par la croix du coin supérieur droit, j'aimerais sauver les nouvelle valeurs des paramêtres de My.Settings.

    j'ai essayé " My.Settings.Save()" dans plusieurs méthodes du formulaire: FormClosed, Disposed, FormClosing, même Deactivate! Mais aucune valeur n'est sauvée...

    Pourtant, elles le sont lorsque " My.Settings.Save()" se trouve dans une méthode d'un contrôle du formulaire.

    Quelle serait l'astuce qui permettrait d'enregistrer les paramêtres en quittant un formulaire?

    Merci!
    Paul Van Walleghem

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    A mon avis, tes paramètres sont enregistrés, mais à cause de la façon dont visual gère les fichiers de paramètres, c'est un fichier différent qui est utilisé à chaque fois que tu recompiles ton application ! Chaque compilation entraine l'incrémentation du numéro de version. Donc .NET considère qu'il s'agit d'une application différente, et crée un nouveau fichier de configuration
    Si tu lances ton appli 2 fois de suite sans recompiler, tu verras que tes paramètres sont bien enregistrés. Enfin, si mon hypothèse est la bonne

    Tu peux trouver le fichier contenant les paramètres dans le répertoire de l'utilisateur :
    %USERPROFILE%\AppData\Local\<nom de l'éditeur>\<application.exe>_<un code bizarre>\<numéro de version>\user.config

    Pour éviter ça tu peux fixer le numéro de version (dans les propriétés du projet)

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    c'est bien des paramètres de type utilisateur et non application que tu as mis ?
    tu as bien assigné les valeurs des paramètres avant de faire .Save ?



    Citation Envoyé par tomlev Voir le message
    Chaque compilation entraine l'incrémentation du numéro de version
    il n'est pas possible de dire à vs d'incrémenter le numéro de version à la compilation (c'était pourtant le cas sous vb6)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut
    J'ai trouvé la cause, mais pas encore le remède. En fait, VB lit et écrit les valeurs de paramêtres dans 2 fichiers distincts. Il les lit dans le fichier "app.config", mais les écrit dans un autre fichier qu'il consacre au paramêtre de portée utilisateur.

    Savez-vous comment on charge les paramètres utilisateurs, et non ceux de l'application?

    Merci

    Je cherche aussi de mon côté...

    Avec mes sincères salutations,
    Paul Van Walleghem

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    les paramètres de type application sont readonly
    ceux de type utilisateur sont writable

    le fichier est stocké dans le 1er cas à coté de l'appli et dans l'autre cas dans chaque dossier d'utilisateur de windows
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut
    J'ai résolu partiellement le problème en rédigeant le code comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub FormGrilleResult_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
            With DataGridResult
                My.Settings.pAppColumnInventaireWidth = .Columns("Inventaire").Width
                My.Settings.pAppColumnTypeDocWidth = .Columns("TypeDoc").Width
                My.Settings.pAppColumnTitreWidth = .Columns("Titre").Width
                My.Settings.pAppColumnAuteurWidth = .Columns("Auteur").Width
            End With
            My.Settings.Save()
    End Sub
    Ainsi les nouvelles valeurs de paramêtres sont stockées dans le fichier "app.config".

    Etonnant, serait-ce possible que si My.Settings.Save() suit directement l'assignation des nouvelles valeurs, il les place à l'endroit des valeurs par défaut des paramêtes (app.config)?
    Tandis que si My.Settings.Save() est à un autre endroit du programme, il enregistre dans le fichiers des paramêtres utilisateurs?


    Je ne pense pas être fou. Du moins, pas encore...
    Paul Van Walleghem

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/08/2010, 16h11
  2. [AC-2003] Enregistrer les valeurs d'un sous formulaire
    Par ez29kiel dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/07/2009, 16h12
  3. Réponses: 0
    Dernier message: 20/11/2008, 10h08
  4. Réponses: 6
    Dernier message: 31/05/2008, 18h05
  5. Réponses: 6
    Dernier message: 16/10/2007, 09h15

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