IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

ProgressBar qui croit puis décroit (pas) Visual Basic 2010 Express


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut ProgressBar qui croit puis décroit (pas) Visual Basic 2010 Express
    Bonjour à toutes et tous,

    J'ai un petit problème dont je n'arrive pas à me sortir.
    Dans un UserForm j'ai une ProgressBar qui grandit toute les 50ms. Arrivé au max (100) elle rediminue jusqu'à 0. ça ça marche, mon problème est que je voudrais le faire plusieurs fois (30), et que le redémarrage ne ce fait pas?
    Dans le code ci-dessous le count_tick varie de 0 au départ jusqu'à 100 puis inversion pour redescendre à 0 le Elseif par contre ne ce fait pas?? Si je mets un point d'arrêt dessus la boucle n'y passe pas alors que la valeur TextBoxCounter.text est bien à 0 ????
    Je dois passer à côté de quelque chose d'évident.
    D'avance merci.

    PS: Le changement de couleur ne fonctionne pas non plus malgré le décochage des styles visuels XP dans les propriétés du projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
        Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
            If (Count_tick = 100) Then
                TextBox.Text = "Souffler"
                PB_Breath.ForeColor = Color.Red
                Add_Val = -1
            ElseIf (Count_tick = 0) Then
                TextBox.Text = "Respirer"
                PB_Breath.ForeColor = Color.LawnGreen
                Add_Val = 1
                If (Count_breath < 30) Then
                    Count_breath += 1
                Else
                    Count_breath = 0
                    Timer.Stop()
                    TextBox.Text = "Fin"
                End If
            Else
                Count_tick = Count_tick + Add_Val
            End If
     
            TextBoxCounter.Text = Str(Count_tick)
            PB_Breath.Value = Count_tick
            TextBoxBreath.Text = Str(Count_breath)
     
        End Sub

  2. #2
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    l'incrémentation/décrémentation de la valeur de ta ProgressBar doit être faite à chaque fois, sinon tu vas bloquer sur une condition, ex. :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            If (pbBreath.Value = 100) Then
                Add_Val = -1
            ElseIf (pbBreath.Value = 0) Then
                Add_Val = 1
            End If
            pbBreath.Value += Add_Val
    Pour le ForeColor j'ai pas de souci de mon côté, donc je saurais pas trop quoi t'en dire.

    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Bonjour jopopmk,

    Je viens d'essayer ta modif, chez moi ça bloque comme précédemment? ça croit ça décroit puis cela s'arrête à 0!??

  4. #4
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Tu as essayé mon code en lieu et place du tien, ou tu as modifier un peu ton code existant ?
    Si deuxième cas, fais nous voir ce que tu as comme code.
    Sinon il reste la possibilité qu'un code annexe soit la source de ton problème.

    Le code que j'ai présenté fonctionne chez moi ; fait avec VS15 et Framwork 4.5.2, sous W7 64b.
    Plus je connais de langages, plus j'aime le C.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Re jopopmk,
    Le count_breath est le compteur de "boucle" 30 fois correspond à la fin de l'exercice. C'est pourquoi j'ai modifié que le Count_tick en sortant du test le count_tick.
    Tu as le code complet pour voir si une interaction bizarre peut expliquer le blocage à 0!

    D'avance merci.
    Windows Seven Pro 64 VS2010 V10.0.30319.1 et .NET V4.6.0155 RTMRel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    Public Class Form1
        Public Fnt As Font
        Public Count_tick As Short
        Public Add_Val As Short
        Public Count_breath As UShort
        Public Resp As Boolean
     
        Private Sub StartButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartButton.Click
            Count_tick = 1
            Count_breath = 0
            TextBox.Visible = True
            TextBoxCounter.Visible = True
            TextBoxBreath.Visible = True
            PB_Breath.ForeColor = Color.LawnGreen
            PB_Breath.Visible = True
            Add_Val = 1
            Fnt = TextBox.Font
            TextBox.Font = New Font(Fnt.Name, 24, FontStyle.Bold)
            'TextBoxCounter.Font = New Font(Fnt.Name, 24, FontStyle.Bold)
            TextBoxBreath.Font = New Font(Fnt.Name, 24, FontStyle.Bold)
            Timer.Interval = 50
            Timer.Enabled = True
            Timer.Start()
            Resp = True
        End Sub
     
        Private Sub ExitButton_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitButton.Click
            Application.Exit()
        End Sub
     
        Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick
            If (Count_tick = 100) Then
                TextBox.Text = "Souffler"
                PB_Breath.ForeColor = Color.Red
                Add_Val = -1
            ElseIf (Count_tick = 0) Then
                TextBox.Text = "Respirer"
                PB_Breath.ForeColor = Color.LawnGreen
                Add_Val = 1
                If (Count_breath < 30) Then
                    Count_breath += 1
                Else
                    Count_breath = 0
                    Timer.Stop()
                    TextBox.Text = "Fin"
                End If
            End If
            Count_tick += Add_Val
     
            TextBoxCounter.Text = Str(Count_tick)
            PB_Breath.Value = Count_tick
            TextBoxBreath.Text = Str(Count_breath)
        End Sub
    End Class

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Juste avant de me pencher sur le pb, tu devrais éviter de donner des noms de class à tes instances, c'est à s'y perdre.
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Bonjour jopopmk,

    Il semble que le else if soit en cause? Je l'ai transformer en end if puis if et ça marche!
    J'en ai profité pour voir si mon install n'était pas foireuse j'ai don tout retiré puis ré-installé et depuis j'ai les couleurs qui vont bien!

    Merci pour ton aide.
    Cordialement.

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Ben de rien ... littéralement
    Plus je connais de langages, plus j'aime le C.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. visual basic 2010 express
    Par jandre dans le forum Visual Studio
    Réponses: 23
    Dernier message: 22/12/2011, 21h27
  2. tcpclient tcpserver visual basic 2010 express
    Par waste dans le forum VB.NET
    Réponses: 0
    Dernier message: 03/04/2011, 23h19
  3. VSTO pour Visual Basic 2010 Express ?
    Par lightstring4 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 13/03/2011, 19h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo