Progress bar et minuteur [Résolu]

Messages postés
25
Date d'inscription
dimanche 20 septembre 2015
Statut
Membre
Dernière intervention
10 janvier 2016
- - Dernière réponse : Legros4960
Messages postés
25
Date d'inscription
dimanche 20 septembre 2015
Statut
Membre
Dernière intervention
10 janvier 2016
- 24 oct. 2015 à 14:00
Bonjour, ami programmeur,

je finalise un pgr de décompte (minuteur) en seconde, j'insère une progress bar qui doit-être remplie complètement quand le décompte est arrivé à " 0 ". Peu importe la valeur du décompte comprise en 1 et 100, 100 étant le remplissage complèt de la progress bar. Mais lorsque j'indique une valeur quelconque ( 78), la progress bar se remplie jusque 78 %, lorsque mon décompte arrive à zéro.
Dim ChangeTemps As Integer

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

If LblAfficheTemps.Text = "0" Then 'SI le texte du Label1 est "0"...
Timer1.Enabled = False 'Arret du Timer1

Else 'Sinon...
LblAfficheTemps.Text = (LblAfficheTemps.Text - 1) 'On retir 1 au text du Label1
ProgressBar1.Increment(1)
End If 'Fin du SI

If ProgressBar1.Value = ChangeTemps Then
Label1.Text = "Au boulot !!"
End If

Label2.Text = ProgressBar1.Value & ("%")


End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ChangeTemps = InputBox("Enter un Temps en seconde", "modif temps")
LblAfficheTemps.Text = ChangeTemps

End Sub

Private Sub QuitterToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
Me.Close()
End Sub

Private Sub TempsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TempsToolStripMenuItem.Click

Static ChangeTemps As Integer 'Declare ma variable
ChangeTemps = InputBox("Enter un Temps en seconde", "modif temps") ' Utilise un inputbox pour entrer une donnée
LblAfficheTemps.Text = ChangeTemps ' Envoie la donnée dans un label
ProgressBar1.Value = 0 'reset la progress bar
Label2.Text = 0% ' mets la valeur à zéro

End Sub

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Start() ' debut du timer
End Sub


Il y a surement quelque chose qui m'échappe, merci de vos réponse
Afficher la suite 

Votre réponse

1 réponse

Messages postés
6038
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
79
0
Merci
Bonjour,

Apprends- toi à mettre:

Option Strict On

Cela corrigera tes erreurs

Voici le code:

Option Strict On
Public Class Form1
    Dim ChangeTemps As Integer
    Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
        If LblAfficheTemps.Text = "0" Then 'SI le texte du Label1 est "0"...
            Timer1.Stop() 'Arret du Timer1
        Else 'Sinon...
            LblAfficheTemps.Text = CStr((CDbl(LblAfficheTemps.Text) - 1)) 'On retir 1 au text du Label1
            ProgressBar1.Increment(1)
            ProgressBar1.Maximum = ChangeTemps 'ligne ajoutée pour remplir la progressBar
        End If 'Fin du SI
        If ProgressBar1.Value = ChangeTemps Then
            Label1.Text = "Au boulot !!"
        End If
        Label2.Text = ProgressBar1.Value & ("%")
    End Sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Timer1.Start()  ' debut du timer
    End Sub
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        ChangeTemps = CInt(InputBox("Enter un Temps en seconde", "modif temps"))
        LblAfficheTemps.Text = CStr(ChangeTemps)
    End Sub
End Class

cs_Le Pivert
Messages postés
6038
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
22 mai 2019
79 -
Je n'avais pas vu cela pourquoi déclarer à nouveau ta variable ChangeTemps . Tu n'as pas compris ce que je t'ai dit dans le précédent post!

La variable est valable pour tout les Sub

   Private Sub TempsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TempsToolStripMenuItem.Click

        Static ChangeTemps As Integer 'Declare ma variable
        ChangeTemps = InputBox("Enter un Temps en seconde", "modif temps")  ' Utilise un inputbox pour entrer une donnée
        LblAfficheTemps.Text = ChangeTemps ' Envoie la donnée dans un label
        ProgressBar1.Value = 0              'reset la progress bar
        Label2.Text = 0%                    ' mets la valeur à zéro

    End Sub
cgandco
Messages postés
219
Date d'inscription
mercredi 26 octobre 2011
Statut
Membre
Dernière intervention
22 juin 2017
8 -
bonjour,

Dans ton code, Label2 ne montera que jusque 78% par exemple.

Label2.Text = String.Format("{0:###}%",(ProgressBar1.Value / ChangeTemps) * 100 )


en plus juste.

bonne journée
Legros4960
Messages postés
25
Date d'inscription
dimanche 20 septembre 2015
Statut
Membre
Dernière intervention
10 janvier 2016
-
Merci, voilà mon code est corrigé ;-)
Legros4960
Messages postés
25
Date d'inscription
dimanche 20 septembre 2015
Statut
Membre
Dernière intervention
10 janvier 2016
-
Merci à tous
Legros4960
Messages postés
25
Date d'inscription
dimanche 20 septembre 2015
Statut
Membre
Dernière intervention
10 janvier 2016
-
Pourrais-je te contacter en MP pour avoir plus d'info ?
Commenter la réponse de cs_Le Pivert