MsgBox a label en Visual Basic

Résolu
Bonjour,

J'ai réussi a écrire d'une message box a un label mais le problème est que quand je ferme mon application et que je la relance il n'enregistre pas ce que j'ai écrit donc le texte revient au premier

Comment faire pour que le texte que j'ai écrit dans msgbox remplace définitivement le texte qui dans le label ???

Aidez moi svp !

Merci

27 réponses

Résumé de la discussion

Le souci décrit est que le texte saisi dans une message box et affiché dans un label n'est pas enregistré au redémarrage de l'application, et le label revient au texte initial. Des réponses recommandent d'écrire dans un fichier et de lire ce fichier au démarrage pour remplacer le texte du label, avec des exemples en VB et des commandes d'ouverture et d'écriture. Plusieurs suggèrent aussi d'utiliser un registre ou une cellule selon le contexte, et de protéger le mot de passe par cryptage avant l'enregistrement, afin d'améliorer la sécurité. En pratique, il est donc recommandé de créer une routine de sauvegarde persistante et de déclencher sa lecture lors de l'ouverture du programme pour que le texte affiché corresponde au fichier.

Bobot (l’IA à votre service)
  1. C'est en effet plus sage.
    Normalement, avant d'ecrire du code, on resonne sur du papier. On élabore un algorithme ou un arbre programmatique qui detaille toutes les taches et comments elles s'articulent les unes par rapport aux autres.
    Sinon on vite fait de s'y perdre, surtout quand on débute.

    Bonne continuation.
    1. J'ai crée un nouveau projet tout simple pour tester si sa marche et sa a marcher ! donc je pense que je vais re faire tout ! :D

      Merci énormément de ton aide !
      1. Alors c'est que tu ne cliques pas sur le bon bouton.
        Vérifie l'enchainement de tes actions. Quel bouton de quelle Form est programmé pour ça. Est ce bien la bonne Form qui est affichée ...
        1. c'est mieux
          qu'est ce qui se passe quand tu clic sur ce bouton?

          Ajoute une ligne du genre

          Msgbox "Ouverture du fichier"
          FileOpen....

          Esct ce que tu vois le message quand tu clic sur le bouton?
          1. Si c'est cela:
                Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                    Dim VarTxt As String
            
                    FileOpen(1, "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt", OpenMode.Input)
            
                    VarTxt = LineInput(1)
                    FileClose(1)
            
                    Me.Label3.Text = VarTxt
            
                End Sub
            1. Ce que tu me montres, c'est l'étape ou tu écris l'info dans le fichier si la vérif est OK. A aucun moment tu ne demandes d'aller chercher l'info dans le fichier et l'écrire dans un textbox.

              ??
              1. Pourtant j'ai mit:
                    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                        Dim VarTxt As String
                
                        FileOpen(1, "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt", OpenMode.Input)
                
                        VarTxt = LineInput(1)
                        FileClose(1)
                
                        Me.Label3.Text = VarTxt
                
                    End Sub
                1. Il ne se passe rien parce la procédure n'est pas exécutée.

                  Il faut provoquer un évènement qui va exécuter la procédure: par exemple, au moment de l'ouverture de Form1, ou le clic sur un bouton ....

                  Il faut voir à quel moment du prog on a besoin le l'info.

                  ;)
                  1. Bon, maintenant récupérer le contenu du fichier
                    voici la procédure:

                    '----------------------
                    Sub ReadTextFile()
                    Dim VarTxt As String

                    FileOpen( 1, "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt", OpenMode.Input)

                    VarTxt = LineInput(1)
                    FileClose(1)

                    MsgBox "Mot de Passe = " & VarTxt

                    End Sub
                    '------------------------

                    Si tu exécutes cette procédure, tu devrais voir dans la MsgBox le contenu du fichier text.txt

                    Remplaces la ligne
                    MsgBox "Mot de Passe = " & VarTxt

                    par
                    Me.TextBox2.Text = VarTxt

                    pour mettre le texte dans TextBox2 par exemple

                    ;)
                    1. MERCI ! J'ai enfin réussi a écrire dans un fichier !!!

                      Maintenant reste a lire ce fichier pour que le mot de passe soit celui qui dans le fichier texte.

                      Encore une fois !
                      1. Bonsoir,

                        Alors pour envoyer un texte dans ce fichier, on vient de le voir.
                        La procédure Sub CreateTextFile() écrit la valeur de la variable VartTxt dans le fichier.
                        Admettons que tu veuilles ecrire le contenu de Form1.MaskedTextBox1, remplaces alors la ligne
                        VarTxt = "My_Password"

                        par
                        VarTxt = Form1.MaskedTextBox1.Text

                        Pour vérifier, aprés exécution ouvre le fichier text.txt avec Bloc Note. Tu devrais y trouver le contenu de Form1.MaskedTextBox1

                        Quand tu auras avancé jusque là, on verra comment récuperer ce texte

                        ;)
                        1. Merci énormément :) Pourrez vous juste encore me dire comment envoyer un text a ce fichier text.txt et comment le récupéré ?

                          Merci encore
                          1. Effectivement, ça ne marche pas parce que c'est du VB.NET et moi je te parle de VB6, c'est légèrement différent
                            '-------------------------
                            Sub CreateTextFile()
                            Dim VarTxt As String

                            VarTxt = "My_Password"

                            FileOpen( 1, "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt", OpenMode.Output)

                            Print(1,VarTxt)

                            FileClose (1)

                            End Sub
                            '-----------------------

                            Voilà, c'est mieux si on parle la même langue.
                            1. Je suis confu ! voila mon VB:
                              Public Class Form2
                                  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                                      If verification() Then
                                          Form3.Show()
                                      Else
                                          Form4.Show()
                              
                                      End If
                                  End Sub
                                  Function verification() As Boolean
                                      Dim accepter As Boolean = True
                                      If TextBox1.Text = Label6.Text Then
                                          Label6.Hide()
                                      Else
                                          Label7.Show()
                                      End If
                              
                                      If TextBox2.Text = TextBox4.Text Then
                                          Form1.MaskedTextBox1.Text = Me.TextBox2.Text
                                          Form3.Show()
                                      Else
                                          Label8.Show()
                                          Label9.Show()
                              
                                      End If
                              
                              
                                  End Function
                              
                              End Class


                              Et je sais pas ou mettre
                              Sub CreateTextFile()
                                      Dim VarTxt As String
                              
                                      VarTxt = "My_Password"
                              
                              Open "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt" For Output As #1
                              
                              Print #1, VarTxt
                                      Close()
                              
                                  End Sub
                              End Class
                              1. Il ne faut pas mettre la sub CreateTextFile() dans Class Form1
                                Il faut mettre cette procédure directement dans le code de Form1 qui contient les controles à atteindre.

                                Enlève Public Class Form1 et End Class
                                1. est-ce qu'il ne manque pas un

                                  imports system.io ???
                                  je suis pas sur...
                                  1. Public Class Form1
                                    
                                        Sub CreateTextFile()
                                            Dim VarTxt As String
                                    
                                            VarTxt = "My_Password"
                                    
                                    Open "D:\Documents and Settings\home\Mes documents\Mes programes\text.txt" For Output As #1
                                    
                                    Print #1, VarTxt
                                            Close()
                                    
                                        End Sub
                                    End Class
                                    • 1
                                    • 2