Publicité
+ Répondre à la discussion
Page 2 sur 2 PremièrePremière 12
Affichage des résultats 21 à 23 sur 23
  1. #21
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2013
    Messages : 11
    Points : 1
    Points
    1

    Par défaut

    Merci ca marche parfaitement voici le screen du programme qui permet d'enregistrer les paramétres


    et le programme qui permet de visualiser les paramétres


    Merci encore

  2. #22
    Modérateur

    Homme Profil pro Hervé
    Inscrit en
    janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Nom : Homme Hervé
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 448
    Points : 4 024
    Points
    4 024

    Par défaut

    De rien,

    C'est sympa de montrer le résultat.

    Pense à mettre le sujet en résolu en cliquant sur le bouton .

  3. #23
    Modérateur

    Homme Profil pro Hervé
    Inscrit en
    janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Nom : Homme Hervé
    Localisation : France

    Informations forums :
    Inscription : janvier 2007
    Messages : 1 448
    Points : 4 024
    Points
    4 024

    Par défaut

    Citation Envoyé par kokonaru Voir le message
    Merci mais j'ai pas bien compris la méthode que tu a utilisé mais elle marche parfaitement. ...
    J'ai placé quelques commentaires.

    Pour la sauvegarde
    Code :
    1
    2
    3
    4
        Private Sub btnEnregistre_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnregistre.Click
            dicoTextBox.Clear()
            ' appel à la procédure qui ajoutera les noms et les valeurs des textbox dans le dictionnaire
            NoteTextBox(Me, dicoTextBox) ' le paramètre Me indique ici la Form (le paramètre conteneur de la procédure NoteTextBox recevra donc la Form)
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        ''' <summary>Stoque toutes les données des textBox (Name,Text) dans un dictionnaire.</summary>
        ''' <param name="conteneur">un conteneur de textbox (form, panel, groupbox)</param>
        ''' <param name="UnDico">le dictionnaire contenant => clé : "nom textbox", valeur : "texte du textbox".</param>
        ''' <remarks>Procédure récursive sur les groupbox et panel.</remarks>
        Sub NoteTextBox(ByVal conteneur As Control, ByRef UnDico As Dictionary(Of String, String))
            For Each ctrl As Control In conteneur.Controls
                'select sur true (condition vrai), qui sera vérifié sur chaque case si "ctrl" correspond au type de controle 
                Select Case True
                    Case TypeOf ctrl Is TextBox ' dans le cas ou le controle est un TextBox, la condition sera vrai
                        UnDico.Add(ctrl.Name, ctrl.Text) ' on ajoute le nom et le texte du TextBox dans le dictionnaire
                    Case TypeOf ctrl Is GroupBox ' dans le cas ou le controle est un GroupBox, la condition sera vrai
                        ' appel à la procédure qui ajoutera les noms et les valeurs des textbox dans le dictionnaire (appel récursif)
                        NoteTextBox(ctrl, UnDico) ' ici le paramètre ctrl est un GroupBox (le paramètre conteneur de la procédure NoteTextBox recevra donc un GroupBox)
                    Case TypeOf ctrl Is Panel
                        NoteTextBox(ctrl, UnDico)
                End Select
            Next
        End Sub
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Sub SaveDico(ByVal UnDico As Dictionary(Of String, String))
    '...
                Dim ecrire As New System.IO.StreamWriter(savefile.FileName)
                ' Nous parcourons chaque éléments du dictionnaire que nous récupérons sous forme d'un ensemble clé, valeur.
                For Each element As KeyValuePair(Of String, String) In UnDico
                    ' la clé s'inscrit en lieu et place de {0}, et le texte en {1}. ce qui donnera une chaine du genre "TextBox1|Toto". Chaine écrite dans le fichier
                    ecrire.WriteLine("{0}|{1}", element.Key, element.Value)
                Next element
    '...
    Pour la lecture
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        ''' <summary>Lecture du fichier de config, création et alimentation d'un dictionnaire avec le contenu du fichier.</summary>
        ''' <returns>renvoie un dictionnaire (Nom TextBox, Texte) rempli avec les valeurs à donner aux TextBox</returns>
        Function loadDico() As Dictionary(Of String, String)
    '...
                UneLigne = srFichier.ReadLine
                While Not UneLigne Is Nothing
                    'split permet de morceler une chaine suivant un caractère. 
                    'Pour éviter d'utiliser un tableau, je procéde ainsi
                    'UneLigne.Split("|")(0) permet de récupérer le 1er élément (la clé: le nom du TextBox)
                    'et UneLigne.Split("|")(1) permet de récupérer le 2éme (la valeur: le texte du TextBox)
                    UnDico.Add(UneLigne.Split("|")(0), UneLigne.Split("|")(1))
                    UneLigne = srFichier.ReadLine
                End While
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
        ''' <summary>Répartie les valeurs du dictionnaire dans les TexBox appropriés. (TextBox identifié par son nom)</summary>
        ''' <param name="conteneur">un conteneur de textbox (form, panel, groupbox)</param>
        ''' <param name="UnDico">le dictionnaire contenant => clé : "nom textbox", valeur : "texte du textbox". (Reçu par référence)</param>
        ''' <remarks>Procédure récursive sur les groupbox et panel.</remarks>
        Sub AffTextBox(ByVal conteneur As Control, ByRef UnDico As Dictionary(Of String, String))
            Try
                For Each ctrl As Control In conteneur.Controls   'parcour de la collection des contrôles du conteneur
                    Select Case True                             'select sur true (condition vrai), qui sera vérifié sur chaque case si "ctrl" correspond au type de contrôle 
                        Case TypeOf ctrl Is TextBox
                            ' chaque ligne du dictionnaire étant constitué d'une clé et d'une valeur
                            ' avec la clé (le nom du TextBox traité (ctrl.Name)) on récupére la valeur (le texte) dans le dictionnaire que l'on affiche dans le TextBox.
                            ctrl.Text = UnDico(ctrl.Name)
                        Case TypeOf ctrl Is GroupBox
                            ' un GroupBox => appel récursif pour traiter les TextBox
                            AffTextBox(ctrl, UnDico)
                        Case TypeOf ctrl Is Panel
                            AffTextBox(ctrl, UnDico)
                    End Select
                Next
    La procédure "EffaceTextBox" est sur le même principe que les autres procédures récursives.

    Si quelque chose t'échappe n'hésite pas à demander.

    A+, Hervé.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •