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 et Boucle


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Par défaut ProgressBar et Boucle
    Bonjour,
    Je code sous Microsoft Visual Basic 2010 Express.
    J'ai un bouton a cliquez et je voudrais que ma ProgressBar charge trois ou cinq fois et s’arrête quand je clique sur le bouton.
    J'ai tout essayé mais rien n'y fait. Elle se charge et s'arrête. Je ne vois pas je me suis raté.
    Voici mon code :

    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
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim ProgressBar1 As Integer
            For ProgressBar1 = 1 To 100
                Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
                System.Threading.Thread.Sleep(50)  
            Next
            Me.ProgressBar1.Value = 0
        End Sub
     
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        End Sub
     
        Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        End Sub
     
        Private Sub PictureBox1(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        End Sub
     
        Private Sub Timer1_Disposed(sender As Object, e As System.EventArgs)
     
        End Sub
     
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs)
            Dim ProgressBar1 As Integer
            For ProgressBar1 = 1 To 100 
                Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
                System.Threading.Thread.Sleep(50) 
            Next
            Me.ProgressBar1.Value = 0
            End Class

  2. #2
    Membre confirmé Avatar de linke
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 119
    Par défaut
    Citation Envoyé par deathstroke Voir le message
    Bonjour,
    Je code sous Microsoft Visual Basic 2010 Express.
    J'ai un bouton a cliquez et je voudrais que ma ProgressBar charge trois ou cinq fois et s’arrête quand je clique sur le bouton.
    J'ai tout essayé mais rien n'y fait. Elle se charge et s'arrête. Je ne vois pas je me suis raté.
    Voici mon code :

    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
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim ProgressBar1 As Integer
            For ProgressBar1 = 1 To 100
                Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
                System.Threading.Thread.Sleep(50)  
            Next
            Me.ProgressBar1.Value = 0
        End Sub
     
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        End Sub
     
        Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        End Sub
     
        Private Sub PictureBox1(ByVal sender As System.Object, ByVal e As System.EventArgs)
     
        End Sub
     
        Private Sub Timer1_Disposed(sender As Object, e As System.EventArgs)
     
        End Sub
     
        Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs)
            Dim ProgressBar1 As Integer
            For ProgressBar1 = 1 To 100 
                Me.ProgressBar1.Value = Me.ProgressBar1.Value + 1
                System.Threading.Thread.Sleep(50) 
            Next
            Me.ProgressBar1.Value = 0
            End Class

    et si t'essaye de l’arrêté a 99%

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Par défaut
    Ouh la la déjà que j'arrive même pas a la faire recommencer alors après je vais devenir zinzin

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien
    Inscrit en
    Août 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2014
    Messages : 3
    Par défaut
    Pour la boucle, je ferai plutôt un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Dim nb_fois_boucle As Integer = 5
            Dim valeur_progressbar As Integer = 0
     
            For i = 1 To nb_fois_boucle
                For j = 0 To 100
                    Me.ProgressBar1.Value = j
                    System.Threading.Thread.Sleep(50)
                Next
            Next

    avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Call boucle()
        End Sub
     
        Private Sub boucle()
            Dim nb_fois_boucle As Integer = 5
     
            For i = 1 To nb_fois_boucle
                For j = 0 To 100
                    Me.ProgressBar1.Value = j
                    System.Threading.Thread.Sleep(50)
                Next
            Next
        End Sub
    Pour l’arrêt en cas d’appuis sur le même bounton, ce code ne marchera pas, il faudra sans toute passé par un backgroudworker ou un autre thread

  5. #5
    Membre confirmé Avatar de linke
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 119
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Pour l’arrêt en cas d’appuis sur le même bounton, ce code ne marchera pas, il faudra sans toute passé par un backgroudworker ou un autre thread
    c'est sur et certain que ca marchera pas , il faut passer par backgroudworker et un bind sur la progressBar

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Par défaut
    Merci beaucoup de votre aide, je vais étudier vos proposition et au cas ou je n'y arrive pas je mettrais une vitesse plus réduite pour le chargement de la ProgressBar

  7. #7
    Membre averti
    Homme Profil pro
    Logistics & Quality Manager
    Inscrit en
    Octobre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Logistics & Quality Manager
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2013
    Messages : 10
    Par défaut
    Bonjour à tous,

    En bricolant un peu tu peux tenter quelque chose dans ce genre :

    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
    Public Class Form1
        Public Etat As String
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     
            If Etat = "" Or Etat = "off" Then
                Etat = "on"
                Call boucle()
            ElseIf Etat = "on" Then
                Etat = "off"
            End If
     
        End Sub
     
        Private Sub boucle()
            Dim nb_fois_boucle As Integer = 5
     
            Me.ProgressBar1.Maximum = 100
     
            For i = 1 To nb_fois_boucle
                For j = 0 To 100
                    Application.DoEvents()
                    If Etat = "on" Then
                        Me.ProgressBar1.Value = j
                        System.Threading.Thread.Sleep(50)
                    Else
                        Me.ProgressBar1.Value = 0
                        Exit Sub
                    End If
                Next
            Next
        End Sub
    End Class
    On définit une variable publique à laquelle on attribue une valeur (ici "on" quand appuie une fois et "off" quand on appuie à nouveau). Puis dans la boucle de la progressbar on vérifie si la valeur de la variable répond au critère que l'on donne, sinon on sort du sub. En cas de besoin on peut aussi remplacer le Exit Sub par un GoTo ...

    En espérant avoir aidé,

    Vincent.

Discussions similaires

  1. Progressbar dans une boucle
    Par pierrot67 dans le forum Débuter
    Réponses: 3
    Dernier message: 30/03/2011, 11h36
  2. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 12h45
  3. ProgressBar avec plusieurs procédures
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 08/09/2002, 18h03
  4. Couleur de ProgressBar
    Par benj63 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 17h33
  5. Réponses: 2
    Dernier message: 29/05/2002, 20h43

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