My.Settings

Résolu
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 - 17 juil. 2010 à 20:19
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 - 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 ?
A voir également:

12 réponses

cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
18 juil. 2010 à 13:36
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 ?
3
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
17 juil. 2010 à 20:49
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
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
17 juil. 2010 à 21:13
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.

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


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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
17 juil. 2010 à 23:50
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é.
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
18 juil. 2010 à 10:35
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 ?
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
18 juil. 2010 à 11:34
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
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
18 juil. 2010 à 12:17
@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 ?
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
18 juil. 2010 à 12:42
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.
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
18 juil. 2010 à 12:53
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 ?
0
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
18 juil. 2010 à 13:11
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 ?
0
cs_aus3004 Messages postés 319 Date d'inscription jeudi 1 avril 2010 Statut Membre Dernière intervention 16 mars 2011 1
18 juil. 2010 à 13:30
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 ?
0
Rejoignez-nous