Bonjour j'aimerais créer un logiciel avec un bouton ou quand on clique le label1 se transforme en une phrase (que j'ai choisis) on attend 5secondes le label2 se modifie, on attend 5secondes le label3 se modifie etc...
Mais sans progressBar est-ce possible ?
A voir également:
Visual basic label text
Comment labelliser des textes - Meilleures réponses
Le plus simple est de créer une structure comprenant un label (Label), un texte (String), et un temps d'intervalle timer (Integer).
Ensuite il faut déclarer une List(Of pour accueillir les instances de ces structures.
Lors du chargement de ton application, tu ajoutes à ta List(Of tes instances de ta structure en prenant soin de lui fournir les paramètres voulus (label concerné, intervalle du timer, texte à afficher).
Dans ton événement timer :
- on peut facilement récupérer le premier élément de ta liste de structures
- déterminer quel label il contient
- faire les modifications du texte du label
- changer le temps du timer pour le prochain élément.
- supprimer le premier élément de la liste des structures.
Et en prenant soin que la liste de structures ne soit pas vide (avec un If).
Public Class Acceuil
Private n As Integer = 1
Private Sub bDém_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles bDém.Click
Tps.Start()
End Sub
Private Sub Tps_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Tps.Tick
If n = 1 Then
Label1.Text "Comment" : n 2
ElseIf n = 2 Then
Label2.Text "fabriquer" : n 3
ElseIf n = 3 Then
Label3.Text "un vieux con ?" : n 4
ElseIf n = 4 Then
Label4.Text "On prend" : n 5
ElseIf n = 5 Then
Label5.Text "un jeune con" : n 6
ElseIf n = 6 Then
Label6.Text = "et on attend." : Tps.Stop()
End If
End Sub
End Class
Banana m'a envoyer le code pour que le label change au bout de X secondes.
Il faut des labels, un timer et un bouton voici le code :
Public Class Form1
'déclaration d'une structure qui contient un temps, un label et un texte
Structure MaStructure
Public Temps As Integer
Public LeLabel As Label
Public Texte As String
End Structure
'déclaration d'une liste acceuillant les structures
Dim MesStructures As New List(Of MaStructure)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Button1.Enabled = False
'ajout des éléments à la liste de structures
MesStructures.Add(New MaStructure With {.LeLabel Label3, .Temps 5000, .Texte = "VOTRE MESSAGE"})
MesStructures.Add(New MaStructure With {.LeLabel Label4, .Temps 1000, .Texte = "VOTRE MESSAGE"})
MesStructures.Add(New MaStructure With {.LeLabel Label5, .Temps 5000, .Texte = "VOTRE MESSAGE"})
MesStructures.Add(New MaStructure With {.LeLabel Label6, .Temps 1000, .Texte = "VOTRE MESSAGE"})
MesStructures.Add(New MaStructure With {.LeLabel Label7, .Temps 5000, .Texte = "VOTRE MESSAGE"})
MesStructures.Add(New MaStructure With {.LeLabel Label8, .Temps 1000, .Texte = "VOTRE MESSAGE"})
MesStructures.Add(New MaStructure With {.LeLabel Label9, .Temps 500, .Texte = "VOTRE MESSAGE"}) 'Au bout de 500milisecondes le label affiche le texte
Timer1.Start()
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If MesStructures.Count > 0 Then
'affichage du texte
MesStructures(0).LeLabel.Text = MesStructures(0).Texte
'réglage du temps d'intervalle du timer pour l'affichage suivant
Timer1.Interval = MesStructures(0).Temps
'effaçage de la premiere structure de la liste
MesStructures.RemoveAt(0)
Else
'arret timer et affichage final
Timer1.Stop()
End If
End Sub
Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
End Sub
End Class
Merci à toutes les personnes ayant participé a la discussion.
Un merci particulier a Banana qui a founir le code et a Zermelo et Ucfoutu pour leur sagesse
cs_dayvid
Messages postés212Date d'inscriptionmardi 18 janvier 2011StatutMembreDernière intervention12 février 20131 12 févr. 2013 à 13:03
Bonjour,
Hum... bon déjà commence par créer t'es Labels, ensuite, ajoute un timer
Ensuite, je te laisse un peut chercher...
Ta fenêtre doit contenir donc 4 Label et un timer
Ensuite c'est pas compliquer, tu prend le non de ton timer, tu met un point après et tu regarde
les différentes propositions...
Quand le timer arrive à expiration, tu change ton texte de ton label de la même façon
tu met le nom de ton label, un point et tu cherche la propriété adéquate pour changer le texte de celui-ci.
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018212 12 févr. 2013 à 15:11
Hum... bon déjà commence par créer t'es Labels, ensuite, ajoute un timer
Ensuite, je te laisse un peut chercher...
Lu et enregistré dans ma "mémoire" (et elle est excellente.
Tu auras donc TOUJOURS et SYSTEMATIQUEMENT le même "traitement", dayvid, en ce qui concernera tes propres questions. Je m'y emploierai avec le plus grand soin en ce qui me concerne !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Vous pouvez d'abord remarquer que j'ai récupéré votre code pour le mettre en coloration syntaxique (troisième icône à partir de la droite). Cela le rend bien plus lisible.
Dans l'évènement du bouton, vous devez seulement déclencher par Start le démarrage du Timer, qui va alors émettre à intervalles régulier des "impulsions", tant que vous ne l'arrêtez pas par Stop.
Vous pouvez alors récupérer ces "impulsions" dans l'évènement du Timer. Et c'est là, et là seulement, que vous devrez agir sur vos Labels. Comment ? Réfléchissez et testez. Mais sachez que tout ce qui est écrit dans une procédure s'effectue quasi simultanément.
À vos neurones !
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Start()
Label1.Text = ("test")
Timer1.Interval = 200
Label2.Text = ("test2")
Timer1.Interval = 200
Label3.Text = ("test3")
Timer1.Interval = 200
End Sub
End Class
Je suis tout disposé à vous aider. Petit problème, je ne sais pas à quel point vous êtes débutant en VB. Alors le meilleur conseil que je puis vous donner pour l'instant, c'est de récupérer sur le net le document de Philippe Lasserre, et de l'étudier à fond. Quand vous aurez compris les termes que j'ai employé, il sera temps de s'occuper de votre code.
Elle est bien bonne. J'ai 72 ans. Si c'est trop pour vous, n'ayez pas peur de me le dire. Ah! j'allais oublier. Je sais aussi faire le couper coller. Et vous ?
Vous m'avez fait bien rire. J'aimerais bien voir votre tête en ce moment.
Je suis curieux de savoir ce qui t'amènes à poser ta question. Tu programmes par plaisir, pour apprendre, par force (boulot), pour l'école (devoirs) ?
Je t'ai donné une solution. A toi d'essayer de la réaliser. Lorsque tu bloqueras sur un point, poste ici le code réalisé et nous verrons ensemble ce qui coince.