MsgBox a label en Visual Basic
RésoluJ'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
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.
-
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. -
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 ! -
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 ... -
Il y a rien qui s'affiche dans la msgbox
-
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? -
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 -
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.
?? -
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 -
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.
;) -
Il ne se passe rien
-
ça ne marche pas...
Il y a une erreur ou il ne se passe rien? -
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
;) -
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 ! -
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
;) -
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 -
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. -
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 mettreSub 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 -
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 -
est-ce qu'il ne manque pas un
imports system.io ???
je suis pas sur... -
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