My.Settings [Résolu]

cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention - 17 juil. 2010 à 20:19 - Dernière réponse : cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention
- 18 juil. 2010 à 13:36
Un grand bonjour à tous

Je développe toujours mon navigateur web perso (depuis 3 mois ^^) et un nouveau obstacle se dresse sur mon chemin...

J'ai form1, qui est mon form principal et form6 qui est un form d'option ou l'utilisateur peut régler des paramètres.
Dans form6 il y a :
CheckBox1
CheckBox2
Textbox1
RadioButton1
RadioButton2

Ce que je cherche c'est enregistrer ces valeurs dans My.Settings, je fais :

Dans form6 :
Private Sub Form6_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        My.Settings.CheckBox1 = CheckBox1.Checked
        My.Settings.CheckBox2 = CheckBox2.Checked
        My.Settings.TextBox2 = TextBox2.Text
        My.Settings.RadioButton1 = RadioButton1.Checked
        My.Settings.RadioButton2 = RadioButton2.Checked
        My.Settings.Save()
    End Sub
Private Sub Form6_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        CheckBox1.Checked = My.Settings.CheckBox1
        CheckBox2.Checked = My.Settings.CheckBox2
        TextBox2.Text = My.Settings.TextBox2
        RadioButton1.Checked = My.Settings.RadioButton1
        RadioButton2.Checked = My.Settings.RadioButton2
End Sub

Et dans form1 je fais "pareil".

Dans Les Paramètres de l'application je crée :
CheckBox1 - Boolean - True
CheckBox2 - Boolean - True
Textbox1 - String - www.google.fr
RadioButton1 - Boolean - True
RadioButton2 - Boolean - False

Et ben ca marche pas !
Je vois pas ou est l'erreur, pouvez-vous me guider svp ??

Bye

Ma LV2 c'est le Visual Basic, et toi ?
Afficher la suite 

Votre réponse

12 réponses

Meilleure réponse
cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention - 18 juil. 2010 à 13:36
3
Merci
C'est bon tous marche parfaitement !

J'ai juste viré ce qui était dans form1_formclosing.

Merci de m'avoir guidé


Ma LV2 c'est le Visual Basic, et toi ?

Merci cs_aus3004 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de cs_aus3004
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 17 juil. 2010 à 20:49
0
Merci
Attention à la portée de tes settings. S'ils sont de portée Application, ils sont en lecture seule, ils ne peuvent pas être modifier par le programme, seulement dans VS leur du développement.

Si tu veux des settings modifiables, il faut qu'ils soient de portée Utilisateur. Mais dans ce cas, chaque utilisateur de la machine aura son propre jeux de settings.


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
NHenry 14273 Messages postés vendredi 14 mars 2003Date d'inscription 16 octobre 2018 Dernière intervention - 17 juil. 2010 à 21:13
0
Merci
Bonjour,

Je note aussi qu'il vaut mieux éviter les noms par défaut pour le forms, les contrôles et tout les reste, cela rend le code moins lisible.

Commenter la réponse de NHenry
cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention - 17 juil. 2010 à 21:41
0
Merci
@casy j'ai bien vérifié la portée est Utilisateur...


Ma LV2 c'est le Visual Basic, et toi ?
Commenter la réponse de cs_aus3004
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 17 juil. 2010 à 23:50
0
Merci
Le code semble correct.

Quel est le problème rencontré exactement ?

A la ré-ouverture de form6, les différents champs sont-ils correctement initialisés ?

N'oubliez pas qu'en mode debug, ce n'est pas le fichier app.config qui est modifié.
Commenter la réponse de foliv57
cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention - 18 juil. 2010 à 10:35
0
Merci
Salut foliv57, ouai les valeurs des champs ne sont pas enregistrées lors de la réouverture du logiciel.

Le code de mon projet est gros est j'ai déjà eu des problèmes "psychologiques" : si je déplace une region au dessus d'une autre certaines choses changent.

Il y a t-il des principes, lois ou règles à réspécter pour ne pas perturber le fonctionnement de My.Settings ?

Merci

Ma LV2 c'est le Visual Basic, et toi ?
Commenter la réponse de cs_aus3004
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 18 juil. 2010 à 11:34
0
Merci
Je dirai que les seuls contraintes sont que le fichier app.config doit contenir les sections

<configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="WindowsApplication1.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
</configSections>


et

        <WindowsApplication1.My.MySettings>
            <setting name="Test" serializeAs="String">
                <value>True</value>
            </setting>
        </WindowsApplication1.My.MySettings>


Mais ca doit être votre cas, sinon vous ne pourriez pas faire
My.Settings.MonParametre

Ensuite lors du premer enregistrement des paramètres, dans votre cas lors de la première fermeture de form6, l'application doit créer un fichier "user.config" quelque part dans :
"C:\Documents and Settings\VotreCompte\Local Settings\Application Data\VotreApplication\VotreApplication.UneCleAuto\Version"
(Attention : Penser à afficher les dossiers et fichiers masqués)

Donc la première étape serait de voir si l'application crée bien ce fichier user.config
Commenter la réponse de foliv57
cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention - 18 juil. 2010 à 12:17
0
Merci
@foliv57 mon prog n'est pas installé sur mon PC, je peux pas retrouver ce fichier...

Je pense que le problème se situe dans form6 car c'est pas le formulaire principal ; ca peut parraître con mais une fois j'ai déjà eu un problème de ce type ou pour afficher les paramètres stockés dans form6 je devais l'ouvrir (invisiblement) pour l'actualiser et que form1 puisse revoire les nouvelles informations de form6.

Je fais donc le test pour voir si le formulaire form6 pose problème :
je met la textbox1 sur form1 puis je modifie le code et la ca marche !

Avez-vous une idée pour que le My.Settings puisse marcher sur form6 ?

Merci encore

Ma LV2 c'est le Visual Basic, et toi ?
Commenter la réponse de cs_aus3004
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 18 juil. 2010 à 12:42
0
Merci
La collection My.Settings est global à toute l'application. Se sont des variables qui sont initialisée au chargement de l'application, puis visible dans toute l'application, indépendement de la form ou class qui y accède.

Commencez peut-être par renomer vos paramètres afin qu'ils n'aient pas le même nom que vos controls. Ceci permettra dans un premier temps de ne pas faire l'amalgame entre paramètre d'application et controls de formulaire.
Commenter la réponse de foliv57
cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention - 18 juil. 2010 à 12:53
0
Merci
J'ai modifié le nom des contrôls et ya pas de changements.

Vraiment bizard ce problème de formulaire


Ma LV2 c'est le Visual Basic, et toi ?
Commenter la réponse de cs_aus3004
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 18 juil. 2010 à 13:11
0
Merci
Lors de la toute première ouverture de form6, les checkboxs sont-elles cochées ?

De quelle manière fermez-vous et ouvrez-vous form6 ?
Commenter la réponse de foliv57
cs_aus3004 319 Messages postés jeudi 1 avril 2010Date d'inscription 16 mars 2011 Dernière intervention - 18 juil. 2010 à 13:30
0
Merci
Form6 se ferme par un bouton me.close ou la croix rouge.

Le problème est presque résolu : si je modifie form6 en le laissant ouvert et que je ferme form1 (donc tout se ferme automatiquement) et ben sa sauvegarde bien !!!!!

Si dans form6_formclosing je met end là ca marche mais faudrait que l'appli redémarre.
Et si je fais un application.restart dans le form6_formclosing alors là ca m'ouvre deux fois mon prog et ca ne marche pas.

Tu connais pas un truc pour redémarrer l'appli autrement ??


Ma LV2 c'est le Visual Basic, et toi ?
Commenter la réponse de cs_aus3004

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.