Progress bar et minuteur [Résolu]

Legros4960 25 Messages postés dimanche 20 septembre 2015Date d'inscription 10 janvier 2016 Dernière intervention - 23 oct. 2015 à 16:35 - Dernière réponse : Legros4960 25 Messages postés dimanche 20 septembre 2015Date d'inscription 10 janvier 2016 Dernière intervention
- 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

6 réponses

cs_Le Pivert 5237 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 août 2018 Dernière intervention - 23 oct. 2015 à 17:04
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 5237 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 août 2018 Dernière intervention - 23 oct. 2015 à 17:46
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 219 Messages postés mercredi 26 octobre 2011Date d'inscription 22 juin 2017 Dernière intervention - 24 oct. 2015 à 11:39
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 25 Messages postés dimanche 20 septembre 2015Date d'inscription 10 janvier 2016 Dernière intervention - 24 oct. 2015 à 13:52
Merci, voilà mon code est corrigé ;-)
Legros4960 25 Messages postés dimanche 20 septembre 2015Date d'inscription 10 janvier 2016 Dernière intervention - 24 oct. 2015 à 13:52
Merci à tous
Legros4960 25 Messages postés dimanche 20 septembre 2015Date d'inscription 10 janvier 2016 Dernière intervention - 24 oct. 2015 à 14:00
Pourrais-je te contacter en MP pour avoir plus d'info ?
Commenter la réponse de cs_Le Pivert

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.