cs_aus3004
Messages postés319Date d'inscriptionjeudi 1 avril 2010StatutMembreDernière intervention16 mars 2011
-
17 juil. 2010 à 20:19
cs_aus3004
Messages postés319Date d'inscriptionjeudi 1 avril 2010StatutMembreDernière intervention16 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 ??
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 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
cs_aus3004
Messages postés319Date d'inscriptionjeudi 1 avril 2010StatutMembreDernière intervention16 mars 20111 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 ?
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
cs_aus3004
Messages postés319Date d'inscriptionjeudi 1 avril 2010StatutMembreDernière intervention16 mars 20111 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 ?
foliv57
Messages postés420Date d'inscriptionvendredi 17 novembre 2006StatutMembreDernière intervention15 juillet 20149 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.
cs_aus3004
Messages postés319Date d'inscriptionjeudi 1 avril 2010StatutMembreDernière intervention16 mars 20111 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 ??