Création de variable [my.settings] dynamiquement

Signaler
Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012
-
Mrvin10020cent
Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012
-
Bonjour,
Après des heures de recherche sur internet, j'ose demandé votre lumière, car j'arrive pas trouvé une solution.
Description du problème :
Je n'arrive pas crée dynamiquement de variable programme (my.settings)
But:
Crée des variables qui permets de garder des paramètres dans le programme après la fermeture de celui- ci et sans l'utilisation d'un fichier tout bêt (ceci purement pas défit technique et bien sûr plus propre)
Mon environnement : Microsoft Visual basique 2010 - Projet en FrameWork 4 (pas encore compiler de toute façon)
Mon approche :
My.Settings.PropertyValues.Add(New Configuration.SettingsPropertyValue(New Configuration.SettingsProperty("Nom_de_Ma_nouvelle_variable")))

Effet :
Aucune erreur lors de l’exécution mais ne paraît pas être crée, impossible de faire appel après à cette variable
Finalité :
J'aurai besoin de ceci pour pouvoir dans mon programme de WOL d'ajouter dynamiquement des bouton qui référence une MacAdresse réveiller le post. Oui je pourrai crée manuellement tant de variable my.settings mais cella limiterai le nombre MacAdresse sauvé dans le programme.

[ceci est mon premier post excusez moi d'avance ]

Merci d'avance à l’intérêt que vous apporterez à mon projet et à ma question

8 réponses

Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012

Désolé de l'oubli, voici ou l'erreur est rencontré et le message :
My.Settings("Nom_de_Ma_nouvelle_variable") = "Valeur attribuée"

Message d'erreur
Titre de la fenêtre d'erreur :
L'exception SettingsPropertyNotFoundException n'a pas été gérée
corps du message
La propriété 'Nom_de_Ma_nouvelle_variable' des paramètres est introuvable
Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012

J'ai aussi essayé :
CreateProperty("Nom_de_Ma_nouvelle_variable")
        SetPropertyValue("Nom_de_Ma_nouvelle_variable", "Valeur attribuée")
        MsgBox(My.Settings("Nom_de_Ma_nouvelle_variable"))

CreateProperty n'est pas reconnu ,,, cela me crée une sub
Trouvé ici

Bonjour,

Comme le nom le dit My.Settings sert à conserver des valeurs (dans un fichier XML) mais pas pour enregistrer des noms de variables. Ce que tu veux faire est impossible avec my.settings.
Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012

Bonjour,

tout d'abord merci de votre réponse cmarcotte, cependant connaissez-vous une autre manière que le tout bête fichier texte que me semble une manière de procéder pas très propre... ?
Messages postés
6565
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 février 2020
95
Bonjour,
J'ai essayé, on peut mettre une variable dans MySettings manuellement mais pas de façon dynamique.
Aller dans My Project- Paramètres.
Entrer dans Nom: Mavaleur et dans Type: String
Pour tester 2 TextBox et un bouton

Public Class Form1
    Dim Mavaleur As String
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
       My.Settings.Mavaleur = Mavaleur
       My.Settings.Save()
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
              Mavaleur = My.Settings.Mavaleur
        TextBox2.Text = Mavaleur
     End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Mavaleur = TextBox1.Text
    End Sub
      
 End Class

@+Le Pivert
Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012

Bonjour,
Oui j'avais d'ores et déjà procédé de cette manière, je cherchais juste la possibilité de faire du dynamique avec ce serai super pratique vu que je crée de champs dynamiquement et plein d'autre contrôles.
Merci quand même Le Pivert
Messages postés
6565
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
21 février 2020
95
Une autre manière: stocker dans le registre:

Public Class Form1
    ' chemin registre: HKEY_CURRENT_USER\Software\VB And VBA Program Settings\Mesvaleurs\Mavariable
    Private Const APP_Text As String = "Mesvaleurs"
    Private Const SECTION_Text As String = "Mavariable"
    Dim Mavaleur As String
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Mavaleur = TextBox1.Text
    End Sub
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        SaveSetting(APP_Text, SECTION_Text, "Mavariable" & ToString(), Mavaleur.ToString())
    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Mavaleur = GetSetting(APP_Text, SECTION_Text, "Mavariable" & ToString())
        TextBox2.Text = Mavaleur
    End Sub
End Class



@+Le Pivert
Messages postés
11
Date d'inscription
vendredi 25 mai 2012
Statut
Membre
Dernière intervention
5 juin 2012

Encore merci à Le Pivert, j'avais pensé à ça mais vu que j'avais dans l'optique de faire un programme "portable", je vais sans doute voir les critères à la baisse, dans l'attende de trouver une solution je vais faire ainsi